From 12fbf8bf78408abbfde0ec1802f39307def4a0ee Mon Sep 17 00:00:00 2001 From: tv Date: Sun, 1 Nov 2026 13:27:28 +0100 Subject: libp2p: relays use address ignore/route filter --- src/transport/libp2p/book.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/transport/libp2p/book.rs') diff --git a/src/transport/libp2p/book.rs b/src/transport/libp2p/book.rs index c2296d3..e502bf8 100644 --- a/src/transport/libp2p/book.rs +++ b/src/transport/libp2p/book.rs @@ -427,7 +427,7 @@ impl Book { /// Where `peer` may be reached through the relays we know (named, then members that /// relay): for a peer known by its ID only (a seed `/p2p/`), which may hold /// a slot on one of them. `local`: this node, never its own relay. - pub(super) fn through_relays(&self, peer: PeerId, local: PeerId) -> Vec { + pub(super) fn through_relays(&mut self, peer: PeerId, local: PeerId) -> Vec { let mut relays: Vec<(PeerId, Multiaddr)> = self .named_relays .iter() @@ -444,7 +444,7 @@ impl Book { relays .into_iter() .chain(members) - .filter(|(relay, _)| *relay != local && *relay != peer) + .filter(|(relay, address)| *relay != local && *relay != peer && !self.left_out(address)) .map(|(_, address)| address.with(Protocol::P2pCircuit).with(Protocol::P2p(peer))) .take(ADDRESSES_PER_PEER) .collect() -- cgit v1.3.1