Browse Source

Use exposed ProcessNewBlockHeaders from ProcessMessages

0.14
Matt Corallo 8 years ago
parent
commit
a8b936df20
  1. 21
      src/main.cpp

21
src/main.cpp

@ -6019,20 +6019,25 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
return true; return true;
} }
BOOST_FOREACH(const CBlockHeader& header, headers) { uint256 hashLastBlock;
CValidationState state; for (const CBlockHeader& header : headers) {
if (pindexLast != NULL && header.hashPrevBlock != pindexLast->GetBlockHash()) { if (!hashLastBlock.IsNull() && header.hashPrevBlock != hashLastBlock) {
Misbehaving(pfrom->GetId(), 20); Misbehaving(pfrom->GetId(), 20);
return error("non-continuous headers sequence"); return error("non-continuous headers sequence");
} }
if (!AcceptBlockHeader(header, state, chainparams, &pindexLast)) { hashLastBlock = header.GetHash();
}
}
CValidationState state;
if (!ProcessNewBlockHeaders(headers, state, chainparams, &pindexLast)) {
int nDoS; int nDoS;
if (state.IsInvalid(nDoS)) { if (state.IsInvalid(nDoS)) {
if (nDoS > 0) if (nDoS > 0) {
LOCK(cs_main);
Misbehaving(pfrom->GetId(), nDoS); Misbehaving(pfrom->GetId(), nDoS);
return error("invalid header received");
}
} }
return error("invalid header received");
} }
} }
@ -6110,8 +6115,6 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
} }
} }
} }
NotifyHeaderTip();
} }
else if (strCommand == NetMsgType::BLOCK && !fImporting && !fReindex) // Ignore blocks received while importing else if (strCommand == NetMsgType::BLOCK && !fImporting && !fReindex) // Ignore blocks received while importing

Loading…
Cancel
Save