fix: unmap ipv4-mapped ipv6 address

Closes: #4
master
Shengjing Zhu 2022-07-26 18:48:04 +08:00
parent 45f802ec6f
commit 56268e4ae6
1 changed files with 2 additions and 0 deletions

View File

@ -112,6 +112,8 @@ func (p *peer) resolveHost() (netip.Addr, error) {
return netip.Addr{}, fmt.Errorf("resolve ip for %s: %w", p.host, err) return netip.Addr{}, fmt.Errorf("resolve ip for %s: %w", p.host, err)
} }
for _, ip := range ips { for _, ip := range ips {
// netstack doesn't seem to understand IPv4-mapped IPv6 addresses.
ip = ip.Unmap()
conn, err := net.DialUDP("udp", nil, net.UDPAddrFromAddrPort(netip.AddrPortFrom(ip, p.port))) conn, err := net.DialUDP("udp", nil, net.UDPAddrFromAddrPort(netip.AddrPortFrom(ip, p.port)))
if err == nil { if err == nil {
conn.Close() conn.Close()