From 38667bc64eb568bdb1632fe9134d189adf3cefe9 Mon Sep 17 00:00:00 2001 From: cui Date: Tue, 2 Jun 2026 23:13:36 +0800 Subject: [PATCH] p2p/nat: server list contains IPv6 servers (#35084) stun-list.txt includes 10 bracketd IPv6 server, but the dial network is fixed to "udp4" --- p2p/nat/nat_test.go | 1 + p2p/nat/stun.go | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/p2p/nat/nat_test.go b/p2p/nat/nat_test.go index 8dd5644fd6..551ec75d25 100644 --- a/p2p/nat/nat_test.go +++ b/p2p/nat/nat_test.go @@ -73,6 +73,7 @@ func TestParseStun(t *testing.T) { }{ {"stun", &stun{serverList: strings.Split(stunDefaultServers, "\n")}}, {"stun:1.2.3.4:1234", &stun{serverList: []string{"1.2.3.4:1234"}}}, + {"stun:[2001:db8::1]:3478", &stun{serverList: []string{"[2001:db8::1]:3478"}}}, } for _, tc := range testcases { diff --git a/p2p/nat/stun.go b/p2p/nat/stun.go index 30d2bc80d0..60c2b920a0 100644 --- a/p2p/nat/stun.go +++ b/p2p/nat/stun.go @@ -45,7 +45,7 @@ func newSTUN(serverAddr string) (Interface, error) { if serverAddr == "" { s.serverList = strings.Split(stunDefaultServers, "\n") } else { - _, err := net.ResolveUDPAddr("udp4", serverAddr) + _, err := net.ResolveUDPAddr("udp", serverAddr) if err != nil { return nil, err } @@ -111,7 +111,7 @@ func (s *stun) externalIP(server string) (net.IP, error) { } log.Trace("Attempting STUN binding request", "server", server) - conn, err := stunV3.Dial("udp4", server) + conn, err := stunV3.Dial("udp", server) if err != nil { return nil, err }