aboutsummaryrefslogtreecommitdiffstats
path: root/src/transport/libp2p/tests.rs
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2026-11-01 19:51:08 +0100
committertv <tv@krebsco.de>2026-11-01 19:51:08 +0100
commit5c5efb0440d50a91de942817f0886fcba6d5d3ae (patch)
treea90edcf5136f9130e8c0d113405357da2044c0e4 /src/transport/libp2p/tests.rs
parentd5bac903cf181b2f1ace38ae330bb0a286d26da3 (diff)
libp2p: remember wrong addresses
Diffstat (limited to 'src/transport/libp2p/tests.rs')
-rw-r--r--src/transport/libp2p/tests.rs17
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();