From 7de0b93d6bf33cfbb795daf917ef109b5f3c6515 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Bierlein?= Date: Wed, 1 May 2024 17:53:10 +0200 Subject: [PATCH] Only add new external addresses --- src/p2p.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/p2p.rs b/src/p2p.rs index b556d9a..37df7c9 100644 --- a/src/p2p.rs +++ b/src/p2p.rs @@ -4,6 +4,7 @@ use std::time::Duration; use eyre::WrapErr; use futures_ticker::Ticker; +use itertools::Itertools; use libp2p::autonat::NatStatus; use libp2p::core::ConnectedPoint; use libp2p::futures::StreamExt; @@ -279,7 +280,10 @@ impl SwarmController { let pid = self.swarm.local_peer_id(); let local_address = if address.is_relayed() { // if it's a relay address, let's assume it's an external address - self.swarm.add_external_address(address.clone()); + + if !self.swarm.external_addresses().contains(&address) { + self.swarm.add_external_address(address.clone()); + } address.to_string() } else {