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
commita799bf88e0e26763f8cb072500b10f3cc3102e87 (patch)
tree712db41cfea9c3760c57182117a6f0842fcb7d7e /src/transport/libp2p/tests.rs
parent1dad07e5919d93f62f53c690e0f24baf7560e5cc (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();