From d35a62e05a9ea08d573d8dabdf0ecf3bf16b88c9 Mon Sep 17 00:00:00 2001 From: smin-k Date: Thu, 9 May 2024 16:34:17 +0900 Subject: [PATCH] p2p/enode: fix ipv6 address used as extip results --- p2p/enode/node.go | 37 +++++++++++++++++-------------------- 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/p2p/enode/node.go b/p2p/enode/node.go index f2d1de30f9..cb35842088 100644 --- a/p2p/enode/node.go +++ b/p2p/enode/node.go @@ -101,26 +101,23 @@ func (n *Node) Load(k enr.Entry) error { // IP returns the IP address of the node. This prefers IPv4 addresses. func (n *Node) IP() net.IP { - var ( - ip4 enr.IPv4 - ip6 enr.IPv6 - ) - if n.Load(&ip4) == nil { - ipv4Addr := net.IP(ip4) - if !ipv4Addr.IsLoopback() { - return ipv4Addr - } - } - if n.Load(&ip6) == nil { - return net.IP(ip6) - } - if n.Load(&ip4) == nil { - ipv4Addr := net.IP(ip4) - if ipv4Addr.IsLoopback() { - return ipv4Addr - } - } - return nil + var ( + ip4 enr.IPv4 + ip6 enr.IPv6 + ) + if n.Load(&ip4) == nil { + ipv4Addr := net.IP(ip4) + if !ipv4Addr.IsLoopback() { + return ipv4Addr + } + } + if n.Load(&ip6) == nil { + return net.IP(ip6) + } + if ipv4Addr := net.IP(ip4); ipv4Addr.IsLoopback() { + return ipv4Addr + } + return nil }