mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-01-22 08:14:15 +00:00
don't expire connected routers
This commit is contained in:
parent
abf687ff09
commit
8544283110
@ -664,21 +664,26 @@ namespace data
|
|||||||
if (it.second->IsUnreachable () && (total - deletedCount < NETDB_MIN_ROUTERS || isLowRate ||
|
if (it.second->IsUnreachable () && (total - deletedCount < NETDB_MIN_ROUTERS || isLowRate ||
|
||||||
(it.second->IsFloodfill () && totalFloodfills - deletedFloodfillsCount < NETDB_MIN_FLOODFILLS)))
|
(it.second->IsFloodfill () && totalFloodfills - deletedFloodfillsCount < NETDB_MIN_FLOODFILLS)))
|
||||||
it.second->SetUnreachable (false);
|
it.second->SetUnreachable (false);
|
||||||
// find & mark expired routers
|
if (!it.second->IsUnreachable ())
|
||||||
if (!it.second->IsReachable () && (it.second->GetCompatibleTransports (true) & RouterInfo::eSSU2V4))
|
{
|
||||||
// non-reachable router, but reachable by ipv4 SSU2 means introducers
|
// find & mark expired routers
|
||||||
{
|
if (!it.second->IsReachable () && (it.second->GetCompatibleTransports (true) & RouterInfo::eSSU2V4))
|
||||||
if (ts > it.second->GetTimestamp () + NETDB_INTRODUCEE_EXPIRATION_TIMEOUT*1000LL)
|
// non-reachable router, but reachable by ipv4 SSU2 means introducers
|
||||||
// RouterInfo expires after 1 hour if uses introducer
|
{
|
||||||
|
if (ts > it.second->GetTimestamp () + NETDB_INTRODUCEE_EXPIRATION_TIMEOUT*1000LL)
|
||||||
|
// RouterInfo expires after 1 hour if uses introducer
|
||||||
|
it.second->SetUnreachable (true);
|
||||||
|
}
|
||||||
|
else if (checkForExpiration && ts > it.second->GetTimestamp () + expirationTimeout)
|
||||||
it.second->SetUnreachable (true);
|
it.second->SetUnreachable (true);
|
||||||
}
|
else if (ts + NETDB_EXPIRATION_TIMEOUT_THRESHOLD*1000LL < it.second->GetTimestamp ())
|
||||||
else if (checkForExpiration && ts > it.second->GetTimestamp () + expirationTimeout)
|
{
|
||||||
it.second->SetUnreachable (true);
|
LogPrint (eLogWarning, "NetDb: RouterInfo is from future for ", (it.second->GetTimestamp () - ts)/1000LL, " seconds");
|
||||||
else if (ts + NETDB_EXPIRATION_TIMEOUT_THRESHOLD*1000LL < it.second->GetTimestamp ())
|
it.second->SetUnreachable (true);
|
||||||
{
|
}
|
||||||
LogPrint (eLogWarning, "NetDb: RouterInfo is from future for ", (it.second->GetTimestamp () - ts)/1000LL, " seconds");
|
if (it.second->IsUnreachable () && i2p::transport::transports.IsConnected (it.second->GetIdentHash ()))
|
||||||
it.second->SetUnreachable (true);
|
it.second->SetUnreachable (false); // don't expire connected router
|
||||||
}
|
}
|
||||||
|
|
||||||
if (it.second->IsUnreachable ())
|
if (it.second->IsUnreachable ())
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user