diff options
author | Wladimir J. van der Laan <laanwj@gmail.com> | 2014-06-12 12:37:00 +0200 |
---|---|---|
committer | Wladimir J. van der Laan <laanwj@gmail.com> | 2014-06-12 12:40:09 +0200 |
commit | 3f39b9d4551d729c3a2e4decd810ac6887cfaeb3 (patch) | |
tree | 7cc8f07b6b49a1e2d8468cf980ed54b309e9a2d7 /src/main.cpp | |
parent | 9a876f55664aa1eaee784ed3fae3563993c5ee76 (diff) | |
parent | f1920e86063d0ed008c6028d8223b0e21889bf75 (diff) |
Merge pull request #2784
f1920e8 Ping automatically every 2 minutes (unconditionally) (Pieter Wuille)
Diffstat (limited to 'src/main.cpp')
-rw-r--r-- | src/main.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/main.cpp b/src/main.cpp index f53d20fbb4..98e1741954 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -4293,8 +4293,8 @@ bool SendMessages(CNode* pto, bool fSendTrickle) // RPC ping request by user pingSend = true; } - if (pto->nLastSend && GetTime() - pto->nLastSend > 30 * 60 && pto->vSendMsg.empty()) { - // Ping automatically sent as a keepalive + if (pto->nPingNonceSent == 0 && pto->nPingUsecStart + PING_INTERVAL * 1000000 < GetTimeMicros()) { + // Ping automatically sent as a latency probe & keepalive. pingSend = true; } if (pingSend) { @@ -4302,15 +4302,14 @@ bool SendMessages(CNode* pto, bool fSendTrickle) while (nonce == 0) { RAND_bytes((unsigned char*)&nonce, sizeof(nonce)); } - pto->nPingNonceSent = nonce; pto->fPingQueued = false; + pto->nPingUsecStart = GetTimeMicros(); if (pto->nVersion > BIP0031_VERSION) { - // Take timestamp as close as possible before transmitting ping - pto->nPingUsecStart = GetTimeMicros(); + pto->nPingNonceSent = nonce; pto->PushMessage("ping", nonce); } else { - // Peer is too old to support ping command with nonce, pong will never arrive, disable timing - pto->nPingUsecStart = 0; + // Peer is too old to support ping command with nonce, pong will never arrive. + pto->nPingNonceSent = 0; pto->PushMessage("ping"); } } |