From 849a47efb86e995ca4be22041581371f50156024 Mon Sep 17 00:00:00 2001 From: Matthias Seitz Date: Fri, 18 Aug 2023 17:07:30 +0200 Subject: [PATCH] fix: prevent node info zero address (#4268) --- crates/net/network/src/network.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/crates/net/network/src/network.rs b/crates/net/network/src/network.rs index 1175eea86..42fe5b4e5 100644 --- a/crates/net/network/src/network.rs +++ b/crates/net/network/src/network.rs @@ -186,7 +186,17 @@ impl PeersInfo for NetworkHandle { fn local_node_record(&self) -> NodeRecord { let id = *self.peer_id(); - let socket_addr = *self.inner.listener_address.lock(); + let mut socket_addr = *self.inner.listener_address.lock(); + + if socket_addr.ip().is_unspecified() { + // zero address is invalid + if socket_addr.ip().is_ipv4() { + socket_addr.set_ip(std::net::IpAddr::V4(std::net::Ipv4Addr::LOCALHOST)); + } else { + socket_addr.set_ip(std::net::IpAddr::V6(std::net::Ipv6Addr::LOCALHOST)); + } + } + NodeRecord::new(socket_addr, id) } }