diff --git a/p2p/protocol/identify/id.go b/p2p/protocol/identify/id.go index 5991fe695051ac957518aed902271bc94d0837ae..86bfada0682db59117538d8aaf82f1d965566c55 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