diff options
author | Gregory Maxwell <greg@xiph.org> | 2018-08-22 23:29:01 +0000 |
---|---|---|
committer | Gregory Maxwell <greg@xiph.org> | 2018-08-23 10:10:12 +0000 |
commit | 66b3fc543706aad1aaccc403b4ee08f65fa5d17b (patch) | |
tree | a3e42c57603ce50c6e7fba55629f68af7c287fec /src/net_processing.cpp | |
parent | 271b379e636afa419c5208cb462c07090490266c (diff) |
Skip stale tip checking if outbound connections are off or if reindexing.
Diffstat (limited to 'src/net_processing.cpp')
-rw-r--r-- | src/net_processing.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/net_processing.cpp b/src/net_processing.cpp index 88999ba735..2a0ba3970d 100644 --- a/src/net_processing.cpp +++ b/src/net_processing.cpp @@ -3166,8 +3166,6 @@ void PeerLogicValidation::EvictExtraOutboundPeers(int64_t time_in_seconds) NodeId worst_peer = -1; int64_t oldest_block_announcement = std::numeric_limits<int64_t>::max(); - LOCK(cs_main); - connman->ForEachNode([&](CNode* pnode) { AssertLockHeld(cs_main); @@ -3215,6 +3213,8 @@ void PeerLogicValidation::EvictExtraOutboundPeers(int64_t time_in_seconds) void PeerLogicValidation::CheckForStaleTipAndEvictPeers(const Consensus::Params &consensusParams) { + LOCK(cs_main); + if (connman == nullptr) return; int64_t time_in_seconds = GetTime(); @@ -3222,10 +3222,9 @@ void PeerLogicValidation::CheckForStaleTipAndEvictPeers(const Consensus::Params EvictExtraOutboundPeers(time_in_seconds); if (time_in_seconds > m_stale_tip_check_time) { - LOCK(cs_main); // Check whether our tip is stale, and if so, allow using an extra // outbound peer - if (TipMayBeStale(consensusParams)) { + if (!fImporting && !fReindex && connman->GetNetworkActive() && connman->GetUseAddrmanOutgoing() && TipMayBeStale(consensusParams)) { LogPrintf("Potential stale tip detected, will try using extra outbound peer (last tip update: %d seconds ago)\n", time_in_seconds - g_last_tip_update); connman->SetTryNewOutboundPeer(true); } else if (connman->GetTryNewOutboundPeer()) { |