1
0
mirror of https://github.com/PurpleI2P/i2pd.git synced 2025-02-08 17:04:13 +00:00

don't try SSU peer test if SSU is disabled

This commit is contained in:
orignal 2022-07-05 13:07:23 -04:00
parent a1e414c3b7
commit 3ed625f949

View File

@ -636,28 +636,30 @@ namespace transport
LogPrint (eLogInfo, "Transports: Started peer test IPv4"); LogPrint (eLogInfo, "Transports: Started peer test IPv4");
std::set<i2p::data::IdentHash> excluded; std::set<i2p::data::IdentHash> excluded;
excluded.insert (i2p::context.GetIdentHash ()); // don't pick own router excluded.insert (i2p::context.GetIdentHash ()); // don't pick own router
bool statusChanged = false; if (m_SSUServer)
for (int i = 0; i < 5; i++) {
{ bool statusChanged = false;
auto router = i2p::data::netdb.GetRandomPeerTestRouter (true, excluded); // v4 for (int i = 0; i < 5; i++)
if (router)
{ {
auto addr = router->GetSSUAddress (true); // ipv4 auto router = i2p::data::netdb.GetRandomPeerTestRouter (true, excluded); // v4
if (addr && !i2p::util::net::IsInReservedRange(addr->host)) if (router)
{ {
if (!statusChanged) auto addr = router->GetSSUAddress (true); // ipv4
if (addr && !i2p::util::net::IsInReservedRange(addr->host))
{ {
statusChanged = true; if (!statusChanged)
i2p::context.SetStatus (eRouterStatusTesting); // first time only {
statusChanged = true;
i2p::context.SetStatus (eRouterStatusTesting); // first time only
}
m_SSUServer->CreateSession (router, addr, true); // peer test v4
} }
m_SSUServer->CreateSession (router, addr, true); // peer test v4 excluded.insert (router->GetIdentHash ());
} }
excluded.insert (router->GetIdentHash ());
} }
if (!statusChanged)
LogPrint (eLogWarning, "Transports: Can't find routers for peer test IPv4");
} }
if (!statusChanged)
LogPrint (eLogWarning, "Transports: Can't find routers for peer test IPv4");
// SSU2 // SSU2
if (m_SSU2Server) if (m_SSU2Server)
{ {
@ -673,28 +675,31 @@ namespace transport
LogPrint (eLogInfo, "Transports: Started peer test IPv6"); LogPrint (eLogInfo, "Transports: Started peer test IPv6");
std::set<i2p::data::IdentHash> excluded; std::set<i2p::data::IdentHash> excluded;
excluded.insert (i2p::context.GetIdentHash ()); // don't pick own router excluded.insert (i2p::context.GetIdentHash ()); // don't pick own router
bool statusChanged = false; if (m_SSUServer)
for (int i = 0; i < 5; i++) {
{ bool statusChanged = false;
auto router = i2p::data::netdb.GetRandomPeerTestRouter (false, excluded); // v6 for (int i = 0; i < 5; i++)
if (router)
{ {
auto addr = router->GetSSUV6Address (); auto router = i2p::data::netdb.GetRandomPeerTestRouter (false, excluded); // v6
if (addr && !i2p::util::net::IsInReservedRange(addr->host)) if (router)
{ {
if (!statusChanged) auto addr = router->GetSSUV6Address ();
if (addr && !i2p::util::net::IsInReservedRange(addr->host))
{ {
statusChanged = true; if (!statusChanged)
i2p::context.SetStatusV6 (eRouterStatusTesting); // first time only {
statusChanged = true;
i2p::context.SetStatusV6 (eRouterStatusTesting); // first time only
}
m_SSUServer->CreateSession (router, addr, true); // peer test v6
} }
m_SSUServer->CreateSession (router, addr, true); // peer test v6 excluded.insert (router->GetIdentHash ());
} }
excluded.insert (router->GetIdentHash ());
} }
if (!statusChanged)
LogPrint (eLogWarning, "Transports: Can't find routers for peer test IPv6");
} }
if (!statusChanged)
LogPrint (eLogWarning, "Transports: Can't find routers for peer test IPv6");
// SSU2 // SSU2
if (m_SSU2Server) if (m_SSU2Server)
{ {