create new published SSU2 addresses

This commit is contained in:
orignal 2022-04-26 20:30:39 -04:00
parent f9ed0d4aa2
commit 6e532c494c

View File

@ -87,6 +87,9 @@ namespace i2p
if (!ntcp2proxy.empty ()) ntcp2Published = false; if (!ntcp2proxy.empty ()) ntcp2Published = false;
} }
} }
bool ssu2Published = false;
if (ssu2)
i2p::config::GetOption("ssu2.published", ssu2Published);
uint8_t caps = 0, addressCaps = 0; uint8_t caps = 0, addressCaps = 0;
if (ipv4) if (ipv4)
{ {
@ -116,11 +119,16 @@ namespace i2p
caps |= i2p::data::RouterInfo::eReachable; // R caps |= i2p::data::RouterInfo::eReachable; // R
} }
if (ssu2) if (ssu2)
{
if (ssu2Published)
routerInfo.AddSSU2Address (m_SSU2Keys->staticPublicKey, m_SSU2Keys->intro, boost::asio::ip::address_v4::from_string (host), port);
else
{ {
addressCaps |= i2p::data::RouterInfo::AddressCaps::eV4; addressCaps |= i2p::data::RouterInfo::AddressCaps::eV4;
routerInfo.AddSSU2Address (m_SSU2Keys->staticPublicKey, m_SSU2Keys->intro); routerInfo.AddSSU2Address (m_SSU2Keys->staticPublicKey, m_SSU2Keys->intro);
} }
} }
}
if (ipv6) if (ipv6)
{ {
std::string host = "::1"; std::string host = "::1";
@ -156,12 +164,17 @@ namespace i2p
caps |= i2p::data::RouterInfo::eReachable; // R caps |= i2p::data::RouterInfo::eReachable; // R
} }
if (ssu2) if (ssu2)
{
if (ssu2Published)
routerInfo.AddSSU2Address (m_SSU2Keys->staticPublicKey, m_SSU2Keys->intro, boost::asio::ip::address_v4::from_string (host), port);
else
{ {
if (!ipv4) // no other ssu2 addresses yet if (!ipv4) // no other ssu2 addresses yet
routerInfo.AddSSU2Address (m_SSU2Keys->staticPublicKey, m_SSU2Keys->intro); routerInfo.AddSSU2Address (m_SSU2Keys->staticPublicKey, m_SSU2Keys->intro);
addressCaps |= i2p::data::RouterInfo::AddressCaps::eV6; addressCaps |= i2p::data::RouterInfo::AddressCaps::eV6;
} }
} }
}
if (ygg) if (ygg)
{ {
auto yggaddr = i2p::util::net::GetYggdrasilAddress (); auto yggaddr = i2p::util::net::GetYggdrasilAddress ();