diff options
| author | tv <tv@krebsco.de> | 2026-11-01 19:51:08 +0100 |
|---|---|---|
| committer | tv <tv@krebsco.de> | 2026-11-01 19:51:08 +0100 |
| commit | 1c104becf94ffe082638d8bded2e9b730c75a5be (patch) | |
| tree | d6fd70637837936d3269a05e64c6c7b2b929a0e5 /src/transport/libp2p/tests.rs | |
| parent | 78fc2365879fbf077bcdb8254808ab369f6c5e6d (diff) | |
libp2p: remember wrong addresses
Diffstat (limited to 'src/transport/libp2p/tests.rs')
| -rw-r--r-- | src/transport/libp2p/tests.rs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/transport/libp2p/tests.rs b/src/transport/libp2p/tests.rs index ce9ad9f..e105761 100644 --- a/src/transport/libp2p/tests.rs +++ b/src/transport/libp2p/tests.rs @@ -562,6 +562,23 @@ fn public_ranges() { } } +/// An address where a dial reached another peer isn't kept for the one dialled, even +/// when it tells it again (identify) or the member list does. +#[test] +fn addresses_of_another_peer_are_forgotten() { + let mut book = Book::default(); + let them = peer(); + let lan: Multiaddr = "/ip4/192.168.1.5/tcp/9661".parse().unwrap(); + let elsewhere: Multiaddr = "/ip4/203.0.114.9/tcp/9661".parse().unwrap(); + book.remember(them, lan.clone()); + book.remember(them, elsewhere.clone()); + book.not_theirs(them, lan.clone().with_p2p(them).unwrap()); + assert_eq!(book.addresses[&them], [elsewhere.clone()]); + book.remember(them, lan.clone()); + book.identified(them, vec![lan, elsewhere.clone()]); + assert_eq!(book.addresses[&them], [elsewhere]); +} + #[test] fn lan_peers_become_seeds_once() { let mut book = Book::default(); |
