From 3dd78a2589d13204422e6954608976a14b290fa1 Mon Sep 17 00:00:00 2001 From: orignal Date: Tue, 9 Aug 2022 19:12:11 -0400 Subject: [PATCH] remove SSU address if SSU is off --- daemon/Daemon.cpp | 1 + libi2pd/RouterContext.cpp | 12 ++++++++++++ libi2pd/RouterContext.h | 1 + 3 files changed, 14 insertions(+) diff --git a/daemon/Daemon.cpp b/daemon/Daemon.cpp index b3ac755d..0b69f511 100644 --- a/daemon/Daemon.cpp +++ b/daemon/Daemon.cpp @@ -253,6 +253,7 @@ namespace util if (!ipv4 && !ipv6) i2p::context.SetStatus (eRouterStatusMesh); } + if (!ssu) i2p::context.RemoveSSUAddress (); // TODO: remove later bool ssu2; i2p::config::GetOption("ssu2.enabled", ssu2); if (ssu2) { diff --git a/libi2pd/RouterContext.cpp b/libi2pd/RouterContext.cpp index fa5c4fdc..7ef59037 100644 --- a/libi2pd/RouterContext.cpp +++ b/libi2pd/RouterContext.cpp @@ -628,6 +628,18 @@ namespace i2p } } + void RouterContext::RemoveSSUAddress () + { + auto& addresses = m_RouterInfo.GetAddresses (); + for (auto it = addresses.begin (); it != addresses.end ();) + { + if ((*it)->transportStyle == i2p::data::RouterInfo::eTransportSSU) + it = addresses.erase (it); + else + ++it; + } + } + void RouterContext::SetUnreachableSSU2 (bool v4, bool v6) { if (IsSSU2Only ()) diff --git a/libi2pd/RouterContext.h b/libi2pd/RouterContext.h index 0c1acc7b..d4f219e1 100644 --- a/libi2pd/RouterContext.h +++ b/libi2pd/RouterContext.h @@ -123,6 +123,7 @@ namespace garlic void PublishSSU2Address (int port, bool publish, bool v4, bool v6); void UpdateSSU2Address (bool enable); void RemoveNTCPAddress (bool v4only = true); // delete NTCP address for older routers. TODO: remove later + void RemoveSSUAddress (); // delete SSU address for older routers bool AddIntroducer (const i2p::data::RouterInfo::Introducer& introducer); void RemoveIntroducer (const boost::asio::ip::udp::endpoint& e); bool AddSSU2Introducer (const i2p::data::RouterInfo::Introducer& introducer, bool v4);