aboutsummaryrefslogtreecommitdiffstats
path: root/src/transport/libp2p/book.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/transport/libp2p/book.rs')
-rw-r--r--src/transport/libp2p/book.rs4
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()