From 5d72a11892878aeef9f6af93d078d04a38f1b3b1 Mon Sep 17 00:00:00 2001 From: Can ZHANG Date: Thu, 15 Nov 2018 18:02:37 +0800 Subject: [PATCH] Remember observed addresses for wildcard local addresses as well --- p2p/protocol/identify/id.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/p2p/protocol/identify/id.go b/p2p/protocol/identify/id.go index 5991fe6..86bfada 100644 --- a/p2p/protocol/identify/id.go +++ b/p2p/protocol/identify/id.go @@ -412,6 +412,18 @@ func (ids *IDService) consumeObservedAddress(observed []byte, c inet.Conn) { } func addrInAddrs(a ma.Multiaddr, as []ma.Multiaddr) bool { + // allow wildcard addresses + if ip, err := a.ValueForProtocol(ma.P_IP4); err == nil { + if parsed := net.ParseIP(ip); parsed != nil && parsed.IsUnspecified() { + return true + } + } + if ip, err := a.ValueForProtocol(ma.P_IP6); err == nil { + if parsed := net.ParseIP(ip); parsed != nil && parsed.IsUnspecified() { + return true + } + } + for _, b := range as { if a.Equal(b) { return true -- GitLab