From a7312e3999dc43ba65c40c3a4328b42d77a16b79 Mon Sep 17 00:00:00 2001 From: cnderrauber Date: Mon, 28 Sep 2026 15:43:47 +0800 Subject: [PATCH] Abort InjectInboundPacket if Conn is closed Avoid InjectInboundPacket block infinite if the handshake is exited. --- conn.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/conn.go b/conn.go index 42e6718ec..20ab4b1ce 100644 --- a/conn.go +++ b/conn.go @@ -962,7 +962,10 @@ var poolReadBuffer = sync.Pool{ //nolint:gochecknoglobals } func (c *Conn) InjectInboundPacket(p []byte, rAddr net.Addr) { - c.inboundPacketInject <- addrPkt{rAddr, p} + select { + case <-c.closed.Done(): + case c.inboundPacketInject <- addrPkt{rAddr, p}: + } } type readResult struct {