From 12ef82e41fc59982adbb5b2008713c32914f5cad Mon Sep 17 00:00:00 2001 From: ginuerzh Date: Wed, 31 Jul 2024 20:55:24 +0800 Subject: [PATCH] fix ssu handler port exhaustion --- internal/net/udp/listener.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/internal/net/udp/listener.go b/internal/net/udp/listener.go index b88b7ce..affeaa4 100644 --- a/internal/net/udp/listener.go +++ b/internal/net/udp/listener.go @@ -178,12 +178,15 @@ func (c *conn) Read(b []byte) (n int, err error) { return } -func (c *conn) Write(b []byte) (n int, err error) { - n, err = c.WriteTo(b, c.remoteAddr) +func (c *conn) WriteTo(b []byte, addr net.Addr) (n int, err error) { if !c.keepAlive { - c.Close() + defer c.Close() } - return + return c.PacketConn.WriteTo(b, addr) +} + +func (c *conn) Write(b []byte) (n int, err error) { + return c.WriteTo(b, c.remoteAddr) } func (c *conn) Close() error {