diff --git a/common/singbridge/packet.go b/common/singbridge/packet.go index 42ef966e..24f0a5f8 100644 --- a/common/singbridge/packet.go +++ b/common/singbridge/packet.go @@ -17,6 +17,7 @@ import ( func CopyPacketConn(ctx context.Context, inboundConn net.Conn, link *transport.Link, destination net.Destination, serverConn net.PacketConn) error { cancel := func() { common.Interrupt(link.Reader) + common.Interrupt(serverConn) } conn := &PacketConnWrapper{ Reader: link.Reader, diff --git a/common/singbridge/pipe.go b/common/singbridge/pipe.go index fef0fdcb..21b39222 100644 --- a/common/singbridge/pipe.go +++ b/common/singbridge/pipe.go @@ -24,7 +24,8 @@ func CopyConn(ctx context.Context, inboundConn net.Conn, link *transport.Link, s conn.R = &buf.BufferedReader{Reader: link.Reader} } cancel := func() { - common.Interrupt(conn.R) + common.Interrupt(link.Reader) + common.Interrupt(serverConn) } conn.T = signal.CancelAfterInactivity(ctx, cancel, 300*time.Second) return ReturnError(bufio.CopyConn(ctx, conn, serverConn))