diff --git a/proxy/socks/temp_udp_listen.go b/proxy/socks/temp_udp_listen.go index 3c3769d5..d7aa2696 100644 --- a/proxy/socks/temp_udp_listen.go +++ b/proxy/socks/temp_udp_listen.go @@ -38,14 +38,11 @@ func (c *TempUDPConn) Read(b []byte) (n int, err error) { break } if c.remote.Load() == nil { - udpRemote, _, _ := net.SplitHostPort(remote.String()) - if c.ExpectedRemoteIP != udpRemote { - continue - } else { + if remoteIP, _, _ := net.SplitHostPort(remote.String()); remoteIP == c.ExpectedRemoteIP { c.remote.CompareAndSwap(nil, &remote) + break } - } - if remote.String() == c.remote.Load().String() { + } else if remote.String() == (*c.remote.Load()).String() { break } }