Browse Source

check if hosts is incomplete

pull/468/head
orignal 9 years ago
parent
commit
5c877de2c2
  1. 18
      AddressBook.cpp
  2. 2
      AddressBook.h

18
AddressBook.cpp

@ -343,10 +343,11 @@ namespace client @@ -343,10 +343,11 @@ namespace client
}
}
void AddressBook::LoadHostsFromStream (std::istream& f)
bool AddressBook::LoadHostsFromStream (std::istream& f)
{
std::unique_lock<std::mutex> l(m_AddressBookMutex);
int numAddresses = 0;
bool incomplete = false;
std::string s;
while (!f.eof ())
{
@ -370,15 +371,21 @@ namespace client @@ -370,15 +371,21 @@ namespace client
numAddresses++;
}
else
{
LogPrint (eLogError, "Addressbook: malformed address ", addr, " for ", name);
}
incomplete = f.eof ();
}
}
else
incomplete = f.eof ();
}
LogPrint (eLogInfo, "Addressbook: ", numAddresses, " addresses processed");
if (numAddresses > 0)
{
m_IsLoaded = true;
if (!incomplete) m_IsLoaded = true;
m_Storage->Save (m_Addresses);
}
return !incomplete;
}
void AddressBook::LoadSubscriptions ()
@ -776,13 +783,12 @@ namespace client @@ -776,13 +783,12 @@ namespace client
i2p::data::GzipInflator inflator;
inflator.Inflate (s, uncompressed);
if (!uncompressed.fail ())
m_Book.LoadHostsFromStream (uncompressed);
return m_Book.LoadHostsFromStream (uncompressed);
else
return false;
}
else
m_Book.LoadHostsFromStream (s);
return true;
return m_Book.LoadHostsFromStream (s);
}
AddressResolver::AddressResolver (std::shared_ptr<ClientDestination> destination):

2
AddressBook.h

@ -66,7 +66,7 @@ namespace client @@ -66,7 +66,7 @@ namespace client
void InsertAddress (const std::string& address, const std::string& base64); // for jump service
void InsertAddress (std::shared_ptr<const i2p::data::IdentityEx> address);
void LoadHostsFromStream (std::istream& f);
bool LoadHostsFromStream (std::istream& f);
void DownloadComplete (bool success, const i2p::data::IdentHash& subscription, const std::string& etag, const std::string& lastModified);
//This method returns the ".b32.i2p" address
std::string ToAddress(const i2p::data::IdentHash& ident) { return GetB32Address(ident); }

Loading…
Cancel
Save