Browse Source

Don't change Yddrasil address if router becomes unreachable through ipv6

pull/1645/head
orignal 4 years ago
parent
commit
bd7328345f
  1. 15
      libi2pd/RouterContext.cpp

15
libi2pd/RouterContext.cpp

@ -250,9 +250,17 @@ namespace i2p
bool updated = false; bool updated = false;
for (auto& address : m_RouterInfo.GetAddresses ()) for (auto& address : m_RouterInfo.GetAddresses ())
{ {
if (address->IsNTCP2 () && (address->port != port || address->ntcp2->isPublished != publish) if (address->IsNTCP2 () && (address->port != port || address->ntcp2->isPublished != publish))
&& ((v4 && address->IsV4 ()) || (v6 && address->IsV6 ()) || {
(ygg && i2p::util::net::IsYggdrasilAddress (address->host)))) bool isAddr = v4 && address->IsV4 ();
if (!isAddr && (v6 || ygg))
{
if (i2p::util::net::IsYggdrasilAddress (address->host))
isAddr = ygg;
else
isAddr = v6 && address->IsV6 ();
}
if (isAddr)
{ {
if (!port && !address->port) if (!port && !address->port)
{ {
@ -267,6 +275,7 @@ namespace i2p
updated = true; updated = true;
} }
} }
}
if (updated) if (updated)
UpdateRouterInfo (); UpdateRouterInfo ();
} }

Loading…
Cancel
Save