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 | a799bf88e0e26763f8cb072500b10f3cc3102e87 (patch) | |
| tree | 712db41cfea9c3760c57182117a6f0842fcb7d7e /src/transport/libp2p/tests.rs | |
| parent | 1dad07e5919d93f62f53c690e0f24baf7560e5cc (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(); |
