mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-02-02 02:44:15 +00:00
update all SSU2 addresses
This commit is contained in:
parent
067fb45a25
commit
1f23584c24
@ -397,41 +397,59 @@ namespace i2p
|
|||||||
{
|
{
|
||||||
auto addresses = m_RouterInfo.GetAddresses ();
|
auto addresses = m_RouterInfo.GetAddresses ();
|
||||||
if (!addresses) return;
|
if (!addresses) return;
|
||||||
bool found = false, updated = false;
|
bool updated = false;
|
||||||
for (auto& it : *addresses)
|
if (enable)
|
||||||
{
|
|
||||||
if (it && it->IsSSU2 ())
|
|
||||||
{
|
|
||||||
found = true;
|
|
||||||
if (enable)
|
|
||||||
{
|
|
||||||
it->s = m_SSU2Keys->staticPublicKey;
|
|
||||||
it->i = m_SSU2Keys->intro;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
it.reset ();
|
|
||||||
updated = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (enable && !found)
|
|
||||||
{
|
{
|
||||||
bool ipv4; i2p::config::GetOption("ipv4", ipv4);
|
bool ipv4; i2p::config::GetOption("ipv4", ipv4);
|
||||||
bool ipv6; i2p::config::GetOption("ipv6", ipv6);
|
bool ipv6; i2p::config::GetOption("ipv6", ipv6);
|
||||||
bool published; i2p::config::GetOption("ntcp2.published", published);
|
if (ipv4 && (*addresses)[i2p::data::RouterInfo::eSSU2V4Idx])
|
||||||
if (published)
|
|
||||||
{
|
{
|
||||||
if (ipv4) m_RouterInfo.AddSSU2Address (m_SSU2Keys->staticPublicKey, m_SSU2Keys->intro, i2p::data::RouterInfo::AddressCaps::eV4);
|
(*addresses)[i2p::data::RouterInfo::eSSU2V4Idx]->s = m_SSU2Keys->staticPublicKey;
|
||||||
if (ipv6) m_RouterInfo.AddSSU2Address (m_SSU2Keys->staticPublicKey, m_SSU2Keys->intro, i2p::data::RouterInfo::AddressCaps::eV6);
|
(*addresses)[i2p::data::RouterInfo::eSSU2V4Idx]->i = m_SSU2Keys->intro;
|
||||||
}
|
ipv4 = false;
|
||||||
else
|
}
|
||||||
|
if (ipv6 && (*addresses)[i2p::data::RouterInfo::eSSU2V6Idx])
|
||||||
{
|
{
|
||||||
uint8_t addressCaps = 0;
|
(*addresses)[i2p::data::RouterInfo::eSSU2V6Idx]->s = m_SSU2Keys->staticPublicKey;
|
||||||
if (ipv4) addressCaps |= i2p::data::RouterInfo::AddressCaps::eV4;
|
(*addresses)[i2p::data::RouterInfo::eSSU2V6Idx]->i = m_SSU2Keys->intro;
|
||||||
if (ipv6) addressCaps |= i2p::data::RouterInfo::AddressCaps::eV6;
|
ipv6 = false;
|
||||||
m_RouterInfo.AddSSU2Address (m_SSU2Keys->staticPublicKey, m_SSU2Keys->intro, addressCaps);
|
|
||||||
}
|
}
|
||||||
updated = true;
|
if (ipv4 && ipv6)
|
||||||
}
|
{
|
||||||
|
bool published; i2p::config::GetOption("ssu2.published", published);
|
||||||
|
if (!published)
|
||||||
|
{
|
||||||
|
m_RouterInfo.AddSSU2Address (m_SSU2Keys->staticPublicKey, m_SSU2Keys->intro,
|
||||||
|
i2p::data::RouterInfo::AddressCaps::eV4 | i2p::data::RouterInfo::AddressCaps::eV6);
|
||||||
|
ipv4 = false; ipv6 = false;
|
||||||
|
updated = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ipv4)
|
||||||
|
{
|
||||||
|
m_RouterInfo.AddSSU2Address (m_SSU2Keys->staticPublicKey, m_SSU2Keys->intro, i2p::data::RouterInfo::AddressCaps::eV4);
|
||||||
|
updated = true;
|
||||||
|
}
|
||||||
|
if (ipv6)
|
||||||
|
{
|
||||||
|
m_RouterInfo.AddSSU2Address (m_SSU2Keys->staticPublicKey, m_SSU2Keys->intro, i2p::data::RouterInfo::AddressCaps::eV6);
|
||||||
|
updated= true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ((*addresses)[i2p::data::RouterInfo::eSSU2V4Idx])
|
||||||
|
{
|
||||||
|
(*addresses)[i2p::data::RouterInfo::eSSU2V4Idx] = nullptr;
|
||||||
|
updated = true;
|
||||||
|
}
|
||||||
|
if ((*addresses)[i2p::data::RouterInfo::eSSU2V6Idx])
|
||||||
|
{
|
||||||
|
(*addresses)[i2p::data::RouterInfo::eSSU2V6Idx] = nullptr;
|
||||||
|
updated = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (updated)
|
if (updated)
|
||||||
UpdateRouterInfo ();
|
UpdateRouterInfo ();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user