avoid unnececssary recusion

This commit is contained in:
orignal 2014-01-31 13:08:33 -05:00
parent 8d98722b46
commit 0e5bbfa21c
2 changed files with 15 additions and 16 deletions

View File

@ -63,6 +63,13 @@ namespace data
void NetDb::Start ()
{
Load ("netDb");
while (m_RouterInfos.size () < 100 && m_ReseedRetries < 10)
{
Reseeder reseeder;
reseeder.reseedNow();
m_ReseedRetries++;
Load ("netDb");
}
m_Thread = new std::thread (std::bind (&NetDb::Run, this));
}
@ -208,23 +215,18 @@ namespace data
void NetDb::Load (const char * directory)
{
Load(directory, false);
}
void NetDb::Load (const char * directory, bool reseed)
{
i2p::data::Reseeder *reseeder = new i2p::data::Reseeder();
boost::filesystem::path p (directory);
if (!boost::filesystem::exists (p))
{
// seems netDb doesn't exist yet
if (!CreateNetDb(directory)) return;
reseeder->reseedNow();
}
if (reseed)
{
reseeder->reseedNow();
m_ReseedRetries++;
}
// make sure we cleanup netDb from previous attempts
for (auto r: m_RouterInfos)
delete r.second;
m_RouterInfos.clear ();
// load routers now
int numRouters = 0;
boost::filesystem::directory_iterator end;
for (boost::filesystem::directory_iterator it (p); it != end; ++it)
@ -244,8 +246,6 @@ namespace data
}
}
LogPrint (numRouters, " routers loaded");
if (numRouters < 100 && m_ReseedRetries < 10)
Load(directory, true); // Reseed
}
void NetDb::SaveUpdated (const char * directory)

View File

@ -78,7 +78,6 @@ namespace data
bool CreateNetDb(const char * directory);
void Load (const char * directory);
void Load (const char * directory, bool reseed);
void SaveUpdated (const char * directory);
void Run (); // exploratory thread
void Explore ();