X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Fdb.cpp;h=2a09e2e673263b70c8f23175147819bfe0aaf9c7;hb=f146061d24e5b7963250b48c2326f123187ed6b1;hp=90353bafea379c4222f49e1cedc9ae8ea47e9fa5;hpb=25c5eca8939832e94556810ae30f1f7830e1c29c;p=novacoin.git diff --git a/src/db.cpp b/src/db.cpp index 90353ba..2a09e2e 100644 --- a/src/db.cpp +++ b/src/db.cpp @@ -732,12 +732,13 @@ bool CAddrDB::WriteAddrman(const CAddrMan& addrman) bool CAddrDB::LoadAddresses() { - bool fAddrMan = false; if (Read(string("addrman"), addrman)) { printf("Loaded %i addresses\n", addrman.size()); - fAddrMan = true; + return true; } + + // Read pre-0.6 addr records vector vAddr; vector > vDelete; @@ -763,31 +764,19 @@ bool CAddrDB::LoadAddresses() ssKey >> strType; if (strType == "addr") { - if (fAddrMan) - { - vector vchKey; - ssKey >> vchKey; - vDelete.push_back(vchKey); - } - else - { - CAddress addr; - ssValue >> addr; - vAddr.push_back(addr); - } - + CAddress addr; + ssValue >> addr; + vAddr.push_back(addr); } } pcursor->close(); - BOOST_FOREACH(const vector &vchKey, vDelete) - Erase(make_pair(string("addr"), vchKey)); + addrman.Add(vAddr, CNetAddr("0.0.0.0")); + printf("Loaded %i addresses\n", addrman.size()); - if (!fAddrMan) - { - addrman.Add(vAddr, CNetAddr("0.0.0.0")); - printf("Loaded %i addresses\n", addrman.size()); - } + // Note: old records left; we ran into hangs-on-startup + // bugs for some users who (we think) were running after + // an unclean shutdown. return true; }