From a799bf88e0e26763f8cb072500b10f3cc3102e87 Mon Sep 17 00:00:00 2001 From: tv Date: Sun, 1 Nov 2026 19:51:08 +0100 Subject: libp2p: remember wrong addresses --- src/transport/libp2p/tests.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/transport/libp2p/tests.rs') 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(); -- cgit v1.3.1