From 064a3cf2a96f6cfd195ac65cf01ea3c8c26b553d Mon Sep 17 00:00:00 2001 From: thinkAfCod Date: Mon, 19 Aug 2024 23:41:31 +0800 Subject: [PATCH] fix parse enr ip --- p2p/enode/node.go | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/p2p/enode/node.go b/p2p/enode/node.go index bb5398f59154..332d92520968 100644 --- a/p2p/enode/node.go +++ b/p2p/enode/node.go @@ -172,8 +172,20 @@ func ParseForAddEnr(validSchemes enr.IdentityScheme, input string) (*Node, error var ip6 netip.Addr n.Load((*enr.IPv4Addr)(&ip4)) n.Load((*enr.IPv6Addr)(&ip6)) - n.setIP4(ip4) - n.setIP6(ip6) + valid4 := ip4.IsValid() + valid6 := ip6.IsValid() + switch { + case valid4 && valid6: + if localityScore(ip4) >= localityScore(ip6) { + n.setIP4(ip4) + } else { + n.setIP6(ip6) + } + case valid4: + n.setIP4(ip4) + case valid6: + n.setIP6(ip6) + } return n, nil }