From 6ac846f95de001035261779fb61fc3594168bf49 Mon Sep 17 00:00:00 2001 From: orignal Date: Thu, 11 Dec 2014 21:14:04 -0500 Subject: [PATCH] SU3 resseed first --- NetDb.cpp | 17 ++++++++++++++--- NetDb.h | 1 - Reseed.cpp | 5 ++++- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/NetDb.cpp b/NetDb.cpp index 572eff98..1d6287ad 100644 --- a/NetDb.cpp +++ b/NetDb.cpp @@ -62,7 +62,7 @@ namespace data #endif NetDb netdb; - NetDb::NetDb (): m_IsRunning (false), m_ReseedRetries (0), m_Thread (0) + NetDb::NetDb (): m_IsRunning (false), m_Thread (0) { } @@ -78,11 +78,22 @@ namespace data void NetDb::Start () { Load (m_NetDbPath); - while (m_RouterInfos.size () < 100 && m_ReseedRetries < 10) + // try SU3 first + int reseedRetries = 0; + while (m_RouterInfos.size () < 100 && reseedRetries < 10) + { + Reseeder reseeder; + reseeder.ReseedNowSU3(); + reseedRetries++; + } + + // if still not enough download .dat files + reseedRetries = 0; + while (m_RouterInfos.size () < 100 && reseedRetries < 10) { Reseeder reseeder; reseeder.reseedNow(); - m_ReseedRetries++; + reseedRetries++; Load (m_NetDbPath); } m_Thread = new std::thread (std::bind (&NetDb::Run, this)); diff --git a/NetDb.h b/NetDb.h index 3bc96b93..93dab40d 100644 --- a/NetDb.h +++ b/NetDb.h @@ -117,7 +117,6 @@ namespace data std::map m_RequestedDestinations; bool m_IsRunning; - int m_ReseedRetries; std::thread * m_Thread; i2p::util::Queue m_Queue; // of I2NPDatabaseStoreMsg diff --git a/Reseed.cpp b/Reseed.cpp index 21ba0d25..03df41fa 100644 --- a/Reseed.cpp +++ b/Reseed.cpp @@ -2,6 +2,7 @@ #include #include #include +#include #include #include "I2PEndian.h" #include "Reseed.h" @@ -125,7 +126,9 @@ namespace data int Reseeder::ReseedNowSU3 () { - std::string reseedHost = httpReseedHostList[(rand() % httpReseedHostList.size())]; + CryptoPP::AutoSeededRandomPool rnd; + auto ind = rnd.GenerateWord32 (0, httpReseedHostList.size() - 1); + std::string reseedHost = httpReseedHostList[ind]; return ReseedFromSU3 (reseedHost); }