mirror of
https://github.com/PurpleI2P/i2pd
synced 2024-11-10 08:00:38 +03:00
1 hours expiration of RI in case of floodfill
This commit is contained in:
parent
d08d1c9127
commit
58ebd8cc59
24
NetDb.cpp
24
NetDb.cpp
@ -410,16 +410,30 @@ namespace data
|
||||
else
|
||||
{
|
||||
// RouterInfo expires after 1 hour if uses introducer
|
||||
if ((it.second->UsesIntroducer () && ts > it.second->GetTimestamp () + 3600*1000LL) // 1 hour
|
||||
// RouterInfo expires in 72 hours if more than 300
|
||||
|| (total > 300 && ts > it.second->GetTimestamp () + 3*24*3600*1000LL)) // 3 days
|
||||
{
|
||||
total--;
|
||||
if (it.second->UsesIntroducer () && ts > it.second->GetTimestamp () + 3600*1000LL) // 1 hour
|
||||
it.second->SetUnreachable (true);
|
||||
else if (total > 25 && ts > (i2p::context.GetStartupTime () + 600)*1000LL) // routers don't expire if less than 25 or uptime is less than 10 minutes
|
||||
{
|
||||
if (i2p::context.IsFloodfill ())
|
||||
{
|
||||
if (ts > it.second->GetTimestamp () + 3600*1000LL) // 1 hours
|
||||
it.second->SetUnreachable (true);
|
||||
}
|
||||
else if (total > 300)
|
||||
{
|
||||
if (ts > it.second->GetTimestamp () + 30*3600*1000LL) // 30 hours
|
||||
it.second->SetUnreachable (true);
|
||||
}
|
||||
else if (total > 120)
|
||||
{
|
||||
if (ts > it.second->GetTimestamp () + 72*3600*1000LL) // 72 hours
|
||||
it.second->SetUnreachable (true);
|
||||
}
|
||||
}
|
||||
|
||||
if (it.second->IsUnreachable ())
|
||||
{
|
||||
total--;
|
||||
// delete RI file
|
||||
if (boost::filesystem::exists (GetFilePath (fullDirectory, it.second.get ())))
|
||||
{
|
||||
|
@ -32,6 +32,7 @@ namespace i2p
|
||||
}
|
||||
CryptoPP::RandomNumberGenerator& GetRandomNumberGenerator () { return m_Rnd; };
|
||||
uint32_t GetUptime () const;
|
||||
uint32_t GetStartupTime () const { return m_StartupTime; };
|
||||
|
||||
void UpdatePort (int port); // called from Daemon
|
||||
void UpdateAddress (const boost::asio::ip::address& host); // called from SSU or Daemon
|
||||
|
Loading…
Reference in New Issue
Block a user