From 8cdfd87d1e418dba92f39ef06fcfb5ceb704ae50 Mon Sep 17 00:00:00 2001 From: wwqgtxx Date: Mon, 15 Sep 2025 08:34:30 +0800 Subject: [PATCH] fix: ip4p port not apply in resolveUDPAddr --- adapter/outbound/util.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/adapter/outbound/util.go b/adapter/outbound/util.go index 21a3600e..6252a9d0 100644 --- a/adapter/outbound/util.go +++ b/adapter/outbound/util.go @@ -40,13 +40,6 @@ func resolveUDPAddr(ctx context.Context, network, address string, prefer C.DNSPr return nil, err } - var uint16Port uint16 - if port, err := strconv.ParseUint(port, 10, 16); err == nil { - uint16Port = uint16(port) - } else { - return nil, err - } - var ip netip.Addr switch prefer { case C.IPv4Only: @@ -64,6 +57,13 @@ func resolveUDPAddr(ctx context.Context, network, address string, prefer C.DNSPr } ip, port = resolver.LookupIP4P(ip, port) + + var uint16Port uint16 + if port, err := strconv.ParseUint(port, 10, 16); err == nil { + uint16Port = uint16(port) + } else { + return nil, err + } // our resolver always unmap before return, so unneeded unmap at here // which is different with net.ResolveUDPAddr maybe return 4in6 address // 4in6 addresses can cause some strange effects on sing-based code