1
0
mirror of https://github.com/PurpleI2P/i2pd.git synced 2025-01-22 12:24:19 +00:00

keyspace rotation

This commit is contained in:
orignal 2014-07-03 14:47:12 -04:00
parent f2f4a0b04e
commit 46d2b38760
2 changed files with 16 additions and 2 deletions

View File

@ -95,7 +95,7 @@ namespace data
void NetDb::Run ()
{
uint32_t lastSave = 0, lastPublish = 0;
uint32_t lastSave = 0, lastPublish = 0, lastKeyspaceRotation = 0;
m_IsRunning = true;
while (m_IsRunning)
{
@ -142,6 +142,11 @@ namespace data
Publish ();
lastPublish = ts;
}
if (ts % 86400 < 60 && ts - lastKeyspaceRotation >= 60) // wihhin 1 minutes since midnight (86400 = 24*3600)
{
KeyspaceRotation ();
lastKeyspaceRotation = ts;
}
}
catch (std::exception& ex)
{
@ -724,5 +729,13 @@ namespace data
}
}
}
void NetDb::KeyspaceRotation ()
{
for (auto it: m_RouterInfos)
it.second->UpdateRoutingKey ();
LogPrint ("Keyspace rotation complete");
Publish ();
}
}
}

View File

@ -95,12 +95,13 @@ namespace data
void Publish ();
void ValidateSubscriptions ();
const RouterInfo * GetClosestFloodfill (const IdentHash& destination, const std::set<IdentHash>& excluded) const;
void KeyspaceRotation ();
RequestedDestination * CreateRequestedDestination (const IdentHash& dest,
bool isLeaseSet, bool isExploratory = false);
void DeleteRequestedDestination (const IdentHash& dest);
void DeleteRequestedDestination (RequestedDestination * dest);
private:
std::map<IdentHash, LeaseSet *> m_LeaseSets;