diff options
| author | tv <tv@krebsco.de> | 2026-10-31 22:00:19 +0100 |
|---|---|---|
| committer | tv <tv@krebsco.de> | 2026-10-31 22:00:19 +0100 |
| commit | 6d26d740434b6a1930b9e618752a009b0c8a2442 (patch) | |
| tree | 5530e8f50c045e125737ea6edca2730606d41972 /src/transport/libp2p/book.rs | |
| parent | 0277b27b678cfbb86ccf72da583503621c6142e6 (diff) | |
libp2p: don't keep ignored addresses
Diffstat (limited to 'src/transport/libp2p/book.rs')
| -rw-r--r-- | src/transport/libp2p/book.rs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/transport/libp2p/book.rs b/src/transport/libp2p/book.rs index b495719..e5bfa9e 100644 --- a/src/transport/libp2p/book.rs +++ b/src/transport/libp2p/book.rs @@ -450,12 +450,17 @@ impl Book { /// `peer` is at `address` (without its `/p2p` part): kept first. Not a direct /// address the peer's identify left out (`identified`): one it no longer has, or - /// one it doesn't publish (`Libp2pConfig::ignore`). + /// one it doesn't publish (`Libp2pConfig::ignore`). Nor one in a range this node + /// leaves out (`ignored`): never dialled, it would only take a place, and be passed + /// on. pub(super) fn remember(&mut self, peer: PeerId, address: Multiaddr) { let address = without_peer(address); if !self.addresses.contains_key(&peer) && self.addresses.len() >= MAX_PEERS { return; } + if ignored(&self.ignored, &address) { + return; + } if self .identified .get(&peer) |
