From 9e4763999ebc6f230fa9c3815ea54f0c10424137 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 21 Nov 2025 09:27:50 +0000 Subject: [PATCH 1/2] kad: Ensure addresses are propagated only in automatic Signed-off-by: Alexandru Vasile --- src/protocol/libp2p/kademlia/mod.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/protocol/libp2p/kademlia/mod.rs b/src/protocol/libp2p/kademlia/mod.rs index 3d9a90fb..2052d139 100644 --- a/src/protocol/libp2p/kademlia/mod.rs +++ b/src/protocol/libp2p/kademlia/mod.rs @@ -439,11 +439,12 @@ impl Kademlia { }) .await; - for info in peers { - let addresses = info.addresses(); - self.service.add_known_address(&info.peer, addresses.clone().into_iter()); + if std::matches!(self.update_mode, RoutingTableUpdateMode::Automatic) { + for info in peers { + let addresses = info.addresses(); + + self.service.add_known_address(&info.peer, addresses.clone().into_iter()); - if std::matches!(self.update_mode, RoutingTableUpdateMode::Automatic) { self.routing_table.add_known_peer( info.peer, addresses, From db275c00e327af7f58b485b993bf261b849a567a Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 21 Nov 2025 09:44:17 +0000 Subject: [PATCH 2/2] kad: Expose addresses for the routing table events Signed-off-by: Alexandru Vasile --- src/protocol/libp2p/kademlia/handle.rs | 2 +- src/protocol/libp2p/kademlia/mod.rs | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/protocol/libp2p/kademlia/handle.rs b/src/protocol/libp2p/kademlia/handle.rs index da02d845..0888447c 100644 --- a/src/protocol/libp2p/kademlia/handle.rs +++ b/src/protocol/libp2p/kademlia/handle.rs @@ -201,7 +201,7 @@ pub enum KademliaEvent { /// in order to add the peers to routing table. RoutingTableUpdate { /// Discovered peers. - peers: Vec, + peers: Vec<(PeerId, Vec)>, }, /// `GET_VALUE` query succeeded. diff --git a/src/protocol/libp2p/kademlia/mod.rs b/src/protocol/libp2p/kademlia/mod.rs index 2052d139..ad3e2ffc 100644 --- a/src/protocol/libp2p/kademlia/mod.rs +++ b/src/protocol/libp2p/kademlia/mod.rs @@ -435,7 +435,10 @@ impl Kademlia { let _ = self .event_tx .send(KademliaEvent::RoutingTableUpdate { - peers: peers.iter().map(|peer| peer.peer).collect::>(), + peers: peers + .iter() + .map(|peer| (peer.peer, peer.addresses())) + .collect::)>>(), }) .await;