diff options
| author | tv <tv@krebsco.de> | 2026-11-01 13:27:28 +0100 |
|---|---|---|
| committer | tv <tv@krebsco.de> | 2026-11-01 13:27:28 +0100 |
| commit | 12fbf8bf78408abbfde0ec1802f39307def4a0ee (patch) | |
| tree | c3251256b854f20d1c31d6024fd937c8b2d5491b /src/transport/libp2p/book.rs | |
| parent | c945e63f619bca888f203ab8eafce6b10cb59a3c (diff) | |
libp2p: relays use address ignore/route filter
Diffstat (limited to 'src/transport/libp2p/book.rs')
| -rw-r--r-- | src/transport/libp2p/book.rs | 4 |
1 files changed, 2 insertions, 2 deletions
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/<peer ID>`), 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<Multiaddr> { + pub(super) fn through_relays(&mut self, peer: PeerId, local: PeerId) -> Vec<Multiaddr> { 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() |
