aboutsummaryrefslogtreecommitdiff
path: root/src/net_processing.cpp
diff options
context:
space:
mode:
authorMarcoFalke <falke.marco@gmail.com>2021-10-07 13:22:51 +0200
committerMarcoFalke <falke.marco@gmail.com>2021-10-07 13:22:02 +0200
commitfadf1186c899f45787a91c28120b0608bdc6c246 (patch)
treed7510161aa389dcbd0b7ed911cb5249c587f258a /src/net_processing.cpp
parentc0b6c96eee7c9e24b78935516225259e61cdabf7 (diff)
downloadbitcoin-fadf1186c899f45787a91c28120b0608bdc6c246.tar.xz
p2p: Use mocktime for ping timeout
Diffstat (limited to 'src/net_processing.cpp')
-rw-r--r--src/net_processing.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/net_processing.cpp b/src/net_processing.cpp
index 66b99aa2bb..22586ba7da 100644
--- a/src/net_processing.cpp
+++ b/src/net_processing.cpp
@@ -4312,8 +4312,11 @@ void PeerManagerImpl::CheckForStaleTipAndEvictPeers()
void PeerManagerImpl::MaybeSendPing(CNode& node_to, Peer& peer, std::chrono::microseconds now)
{
- if (m_connman.ShouldRunInactivityChecks(node_to) && peer.m_ping_nonce_sent &&
+ if (m_connman.ShouldRunInactivityChecks(node_to, std::chrono::duration_cast<std::chrono::seconds>(now).count()) &&
+ peer.m_ping_nonce_sent &&
now > peer.m_ping_start.load() + std::chrono::seconds{TIMEOUT_INTERVAL}) {
+ // The ping timeout is using mocktime. To disable the check during
+ // testing, increase -peertimeout.
LogPrint(BCLog::NET, "ping timeout: %fs peer=%d\n", 0.000001 * count_microseconds(now - peer.m_ping_start.load()), peer.m_id);
node_to.fDisconnect = true;
return;