p2p/enode: fix ipv6 address used as extip results

This commit is contained in:
smin-k 2024-05-09 16:34:17 +09:00
parent 577a52a056
commit d35a62e05a

View file

@ -101,26 +101,23 @@ func (n *Node) Load(k enr.Entry) error {
// IP returns the IP address of the node. This prefers IPv4 addresses. // IP returns the IP address of the node. This prefers IPv4 addresses.
func (n *Node) IP() net.IP { func (n *Node) IP() net.IP {
var ( var (
ip4 enr.IPv4 ip4 enr.IPv4
ip6 enr.IPv6 ip6 enr.IPv6
) )
if n.Load(&ip4) == nil { if n.Load(&ip4) == nil {
ipv4Addr := net.IP(ip4) ipv4Addr := net.IP(ip4)
if !ipv4Addr.IsLoopback() { if !ipv4Addr.IsLoopback() {
return ipv4Addr return ipv4Addr
} }
} }
if n.Load(&ip6) == nil { if n.Load(&ip6) == nil {
return net.IP(ip6) return net.IP(ip6)
} }
if n.Load(&ip4) == nil { if ipv4Addr := net.IP(ip4); ipv4Addr.IsLoopback() {
ipv4Addr := net.IP(ip4) return ipv4Addr
if ipv4Addr.IsLoopback() { }
return ipv4Addr return nil
}
}
return nil
} }