Changeset View
Changeset View
Standalone View
Standalone View
src/net_processing.cpp
Show First 20 Lines • Show All 1,584 Lines • ▼ Show 20 Lines | static bool ProcessHeadersMessage(const Config &config, CNode *pfrom, | ||||
} | } | ||||
CValidationState state; | CValidationState state; | ||||
CBlockHeader first_invalid_header; | CBlockHeader first_invalid_header; | ||||
if (!ProcessNewBlockHeaders(config, headers, state, &pindexLast, | if (!ProcessNewBlockHeaders(config, headers, state, &pindexLast, | ||||
&first_invalid_header)) { | &first_invalid_header)) { | ||||
int nDoS; | int nDoS; | ||||
if (state.IsInvalid(nDoS)) { | if (state.IsInvalid(nDoS)) { | ||||
if (nDoS > 0) { | |||||
LOCK(cs_main); | LOCK(cs_main); | ||||
if (nDoS > 0) { | |||||
Misbehaving(pfrom, nDoS, state.GetRejectReason()); | Misbehaving(pfrom, nDoS, state.GetRejectReason()); | ||||
} | } | ||||
if (punish_duplicate_invalid && | if (punish_duplicate_invalid && | ||||
LookupBlockIndex(first_invalid_header.GetHash())) { | LookupBlockIndex(first_invalid_header.GetHash())) { | ||||
// Goal: don't allow outbound peers to use up our outbound | // Goal: don't allow outbound peers to use up our outbound | ||||
// connection slots if they are on incompatible chains. | // connection slots if they are on incompatible chains. | ||||
// | // | ||||
// We ask the caller to set punish_invalid appropriately based | // We ask the caller to set punish_invalid appropriately based | ||||
▲ Show 20 Lines • Show All 2,763 Lines • Show Last 20 Lines |