From ba538619eb8a21ec0e44fc97357ac9e142bbd3bd Mon Sep 17 00:00:00 2001 From: LjhAUMEM Date: Sat, 30 May 2026 17:30:23 +0800 Subject: [PATCH] Realm finalmask: Fix client punch peers (#6213) Fixes https://github.com/XTLS/Xray-core/pull/6137 --- transport/internet/finalmask/realm/client.go | 2 +- transport/internet/finalmask/realm/stun.go | 10 +++------- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/transport/internet/finalmask/realm/client.go b/transport/internet/finalmask/realm/client.go index f2c0fb7c..5b2354a5 100644 --- a/transport/internet/finalmask/realm/client.go +++ b/transport/internet/finalmask/realm/client.go @@ -80,7 +80,7 @@ func (c *realmConnClient) getpeer() (net.PacketConn, error) { } start = time.Now() - peer, err := c.punch(meta, peers) + peer, err := c.punch(meta, expandedPeers) if err != nil { return nil, errors.New("punch fail").Base(err) } diff --git a/transport/internet/finalmask/realm/stun.go b/transport/internet/finalmask/realm/stun.go index 07b07dc4..f490cbe0 100644 --- a/transport/internet/finalmask/realm/stun.go +++ b/transport/internet/finalmask/realm/stun.go @@ -167,7 +167,9 @@ func expandSymmetricNATCandidates(candidates []netip.AddrPort, seen map[netip.Ad added++ } } - sortAddrPorts(candidates) + slices.SortFunc(candidates, func(a, b netip.AddrPort) int { + return strings.Compare(a.String(), b.String()) + }) return candidates } @@ -197,12 +199,6 @@ func predictablePortGroup(ports []uint16) bool { return true } -func sortAddrPorts(addrs []netip.AddrPort) { - slices.SortFunc(addrs, func(a, b netip.AddrPort) int { - return strings.Compare(a.String(), b.String()) - }) -} - func addrPortStrings(addrs []netip.AddrPort) []string { out := make([]string, 0, len(addrs)) for _, addr := range addrs {