|
|
@ -4478,8 +4478,12 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, |
|
|
|
pfrom->AddInventoryKnown(inv); |
|
|
|
pfrom->AddInventoryKnown(inv); |
|
|
|
|
|
|
|
|
|
|
|
CValidationState state; |
|
|
|
CValidationState state; |
|
|
|
// Process all blocks from whitelisted peers, even if not requested.
|
|
|
|
// Process all blocks from whitelisted peers, even if not requested,
|
|
|
|
ProcessNewBlock(state, pfrom, &block, pfrom->fWhitelisted, NULL); |
|
|
|
// unless we're still syncing with the network.
|
|
|
|
|
|
|
|
// Such an unrequested block may still be processed, subject to the
|
|
|
|
|
|
|
|
// conditions in AcceptBlock().
|
|
|
|
|
|
|
|
bool forceProcessing = pfrom->fWhitelisted && !IsInitialBlockDownload(); |
|
|
|
|
|
|
|
ProcessNewBlock(state, pfrom, &block, forceProcessing, NULL); |
|
|
|
int nDoS; |
|
|
|
int nDoS; |
|
|
|
if (state.IsInvalid(nDoS)) { |
|
|
|
if (state.IsInvalid(nDoS)) { |
|
|
|
pfrom->PushMessage("reject", strCommand, state.GetRejectCode(), |
|
|
|
pfrom->PushMessage("reject", strCommand, state.GetRejectCode(), |
|
|
|