Skip to content

Commit

Permalink
net: fix a few cases where messages were sent rather than dropped upo…
Browse files Browse the repository at this point in the history
…n disconnection

75ead758 turned these into crashes in the event of a handshake failure, most
notably when a peer does not offer the expected services.

There are likely other cases that these assertions will find as well.

Github-Pull: #8862
Rebased-From: 905bc68d05595f41cca36b3df83accd10c00cc48
  • Loading branch information
theuni authored and laanwj committed Oct 13, 2016
1 parent 3e80ab7 commit 7ae6242
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions src/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6342,7 +6342,7 @@ bool SendMessages(CNode* pto)
// Ping automatically sent as a latency probe & keepalive.
pingSend = true;
}
if (pingSend) {
if (pingSend && !pto->fDisconnect) {
uint64_t nonce = 0;
while (nonce == 0) {
GetRandBytes((unsigned char*)&nonce, sizeof(nonce));
Expand Down Expand Up @@ -6423,7 +6423,7 @@ bool SendMessages(CNode* pto)
if (pindexBestHeader == NULL)
pindexBestHeader = chainActive.Tip();
bool fFetch = state.fPreferredDownload || (nPreferredDownload == 0 && !pto->fClient && !pto->fOneShot); // Download if this is a nice peer, or we have no nice peers and this one might do.
if (!state.fSyncStarted && !pto->fClient && !fImporting && !fReindex) {
if (!state.fSyncStarted && !pto->fClient && !pto->fDisconnect && !fImporting && !fReindex) {
// Only actively request headers from a single peer, unless we're close to today.
if ((nSyncStarted == 0 && fFetch) || pindexBestHeader->GetBlockTime() > GetAdjustedTime() - 24 * 60 * 60) {
state.fSyncStarted = true;
Expand Down

0 comments on commit 7ae6242

Please sign in to comment.