|
|
|
@ -2420,7 +2420,6 @@ void PeerManagerImpl::ProcessHeadersMessage(CNode& pfrom, Peer& peer,
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool received_new_header = false;
|
|
|
|
|
const CBlockIndex *pindexLast = nullptr;
|
|
|
|
|
|
|
|
|
|
// Do these headers connect to something in our block index?
|
|
|
|
@ -2444,15 +2443,9 @@ void PeerManagerImpl::ProcessHeadersMessage(CNode& pfrom, Peer& peer,
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
LOCK(cs_main);
|
|
|
|
|
|
|
|
|
|
// If we don't have the last header, then they'll have given us
|
|
|
|
|
// something new (if these headers are valid).
|
|
|
|
|
if (!m_chainman.m_blockman.LookupBlockIndex(headers.back().GetHash())) {
|
|
|
|
|
received_new_header = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// If we don't have the last header, then this peer will have given us
|
|
|
|
|
// something new (if these headers are valid).
|
|
|
|
|
bool received_new_header{WITH_LOCK(::cs_main, return m_chainman.m_blockman.LookupBlockIndex(headers.back().GetHash()) == nullptr)};
|
|
|
|
|
|
|
|
|
|
BlockValidationState state;
|
|
|
|
|
if (!m_chainman.ProcessNewBlockHeaders(headers, state, &pindexLast)) {
|
|
|
|
|