Browse Source

* Addressbook: load addresses at start, not on first request

pull/376/head
hagen 9 years ago
parent
commit
576801cd32
  1. 8
      AddressBook.cpp

8
AddressBook.cpp

@ -196,6 +196,7 @@ namespace client
void AddressBook::Start () void AddressBook::Start ()
{ {
LoadHosts (); /* try storage, then hosts.txt, then download */
StartSubscriptions (); StartSubscriptions ();
} }
@ -275,15 +276,10 @@ namespace client
} }
const i2p::data::IdentHash * AddressBook::FindAddress (const std::string& address) const i2p::data::IdentHash * AddressBook::FindAddress (const std::string& address)
{
if (!m_IsLoaded)
LoadHosts ();
if (m_IsLoaded)
{ {
auto it = m_Addresses.find (address); auto it = m_Addresses.find (address);
if (it != m_Addresses.end ()) if (it != m_Addresses.end ())
return &it->second; return &it->second;
}
return nullptr; return nullptr;
} }
@ -457,8 +453,6 @@ namespace client
} }
else else
{ {
if (!m_IsLoaded)
LoadHosts ();
// try it again later // try it again later
m_SubscriptionsUpdateTimer->expires_from_now (boost::posix_time::minutes(INITIAL_SUBSCRIPTION_RETRY_TIMEOUT)); m_SubscriptionsUpdateTimer->expires_from_now (boost::posix_time::minutes(INITIAL_SUBSCRIPTION_RETRY_TIMEOUT));
m_SubscriptionsUpdateTimer->async_wait (std::bind (&AddressBook::HandleSubscriptionsUpdateTimer, m_SubscriptionsUpdateTimer->async_wait (std::bind (&AddressBook::HandleSubscriptionsUpdateTimer,

Loading…
Cancel
Save