diff --git a/transport/hysteria/conns/udp/hop.go b/transport/hysteria/conns/udp/hop.go index c31f317f6..53830ae4d 100644 --- a/transport/hysteria/conns/udp/hop.go +++ b/transport/hysteria/conns/udp/hop.go @@ -212,6 +212,9 @@ func (c *ObfsUDPHopClientPacketConn) ReadFrom(b []byte) (int, net.Addr, error) { func (c *ObfsUDPHopClientPacketConn) WriteTo(b []byte, addr net.Addr) (int, error) { c.connMutex.RLock() defer c.connMutex.RUnlock() + if c.closed { + return 0, net.ErrClosed + } /* // Check if the address is the server address if addr.String() != c.serverAddr.String() { @@ -237,6 +240,7 @@ func (c *ObfsUDPHopClientPacketConn) Close() error { err := c.currentConn.Close() close(c.closeChan) c.closed = true + c.serverAddrs = nil // For GC return err }