diff options
author | Wladimir J. van der Laan <laanwj@gmail.com> | 2014-09-18 14:08:43 +0200 |
---|---|---|
committer | Wladimir J. van der Laan <laanwj@gmail.com> | 2014-09-18 14:20:18 +0200 |
commit | 94064710b9123dfb3df8cfd6c32efae349aec281 (patch) | |
tree | 84b6105c502fe6edd6115bab292c29b2aaa70f62 /src/net.cpp | |
parent | 7fd881367544fcc9e70130bf448a181794da26ab (diff) |
Write fee estimate and peers files only when initialized
Fixes #4669.
Move the loading of addresses to StartNode() to make it more
self-contained.
Diffstat (limited to 'src/net.cpp')
-rw-r--r-- | src/net.cpp | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/net.cpp b/src/net.cpp index ab547e2fd7..ebb103b636 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -78,6 +78,7 @@ uint64_t nLocalHostNonce = 0; static std::vector<ListenSocket> vhListenSocket; CAddrMan addrman; int nMaxConnections = 125; +bool fAddressesInitialized = false; vector<CNode*> vNodes; CCriticalSection cs_vNodes; @@ -1739,6 +1740,18 @@ void static Discover(boost::thread_group& threadGroup) void StartNode(boost::thread_group& threadGroup) { + uiInterface.InitMessage(_("Loading addresses...")); + // Load addresses for peers.dat + int64_t nStart = GetTimeMillis(); + { + CAddrDB adb; + if (!adb.Read(addrman)) + LogPrintf("Invalid or missing peers.dat; recreating\n"); + } + LogPrintf("Loaded %i addresses from peers.dat %dms\n", + addrman.size(), GetTimeMillis() - nStart); + fAddressesInitialized = true; + if (semOutbound == NULL) { // initialize semaphore int nMaxOutbound = min(MAX_OUTBOUND_CONNECTIONS, nMaxConnections); @@ -1785,7 +1798,12 @@ bool StopNode() if (semOutbound) for (int i=0; i<MAX_OUTBOUND_CONNECTIONS; i++) semOutbound->post(); - DumpAddresses(); + + if (fAddressesInitialized) + { + DumpAddresses(); + fAddressesInitialized = false; + } return true; } |