@@ -2285,7 +2285,7 @@ void PeerManagerImpl::HandleFewUnconnectingHeaders(CNode& pfrom, Peer& peer,
2285
2285
2286
2286
nodestate->nUnconnectingHeaders ++;
2287
2287
// Try to fill in the missing headers.
2288
- if (MaybeSendGetHeaders (pfrom, m_chainman. ActiveChain (). GetLocator (m_chainman.m_best_header ), peer)) {
2288
+ if (MaybeSendGetHeaders (pfrom, GetLocator (m_chainman.m_best_header ), peer)) {
2289
2289
LogPrint (BCLog::NET, " received header %s: missing prev block %s, sending getheaders (%d) to end (peer=%d, nUnconnectingHeaders=%d)\n " ,
2290
2290
headers[0 ].GetHash ().ToString (),
2291
2291
headers[0 ].hashPrevBlock .ToString (),
@@ -2506,11 +2506,12 @@ void PeerManagerImpl::ProcessHeadersMessage(CNode& pfrom, Peer& peer,
2506
2506
return ;
2507
2507
}
2508
2508
}
2509
+ Assume (pindexLast);
2509
2510
2510
2511
// Consider fetching more headers.
2511
2512
if (nCount == MAX_HEADERS_RESULTS) {
2512
2513
// Headers message had its maximum size; the peer may have more headers.
2513
- if (MaybeSendGetHeaders (pfrom, WITH_LOCK (m_chainman. GetMutex (), return m_chainman. ActiveChain (). GetLocator (pindexLast) ), peer)) {
2514
+ if (MaybeSendGetHeaders (pfrom, GetLocator (pindexLast), peer)) {
2514
2515
LogPrint (BCLog::NET, " more getheaders (%d) to end to peer=%d (startheight:%d)\n " ,
2515
2516
pindexLast->nHeight , pfrom.GetId (), peer.m_starting_height );
2516
2517
}
@@ -3285,7 +3286,7 @@ void PeerManagerImpl::ProcessMessage(CNode& pfrom, const std::string& msg_type,
3285
3286
// use if we turned on sync with all peers).
3286
3287
CNodeState& state{*Assert (State (pfrom.GetId ()))};
3287
3288
if (state.fSyncStarted || (!peer->m_inv_triggered_getheaders_before_sync && *best_block != m_last_block_inv_triggering_headers_sync)) {
3288
- if (MaybeSendGetHeaders (pfrom, m_chainman. ActiveChain (). GetLocator (m_chainman.m_best_header ), *peer)) {
3289
+ if (MaybeSendGetHeaders (pfrom, GetLocator (m_chainman.m_best_header ), *peer)) {
3289
3290
LogPrint (BCLog::NET, " getheaders (%d) %s to peer=%d\n " ,
3290
3291
m_chainman.m_best_header ->nHeight , best_block->ToString (),
3291
3292
pfrom.GetId ());
@@ -3752,7 +3753,7 @@ void PeerManagerImpl::ProcessMessage(CNode& pfrom, const std::string& msg_type,
3752
3753
if (!m_chainman.m_blockman .LookupBlockIndex (cmpctblock.header .hashPrevBlock )) {
3753
3754
// Doesn't connect (or is genesis), instead of DoSing in AcceptBlockHeader, request deeper headers
3754
3755
if (!m_chainman.ActiveChainstate ().IsInitialBlockDownload ()) {
3755
- MaybeSendGetHeaders (pfrom, m_chainman. ActiveChain (). GetLocator (m_chainman.m_best_header ), *peer);
3756
+ MaybeSendGetHeaders (pfrom, GetLocator (m_chainman.m_best_header ), *peer);
3756
3757
}
3757
3758
return ;
3758
3759
}
@@ -4502,7 +4503,7 @@ void PeerManagerImpl::ConsiderEviction(CNode& pto, Peer& peer, std::chrono::seco
4502
4503
// getheaders in-flight already, in which case the peer should
4503
4504
// still respond to us with a sufficiently high work chain tip.
4504
4505
MaybeSendGetHeaders (pto,
4505
- m_chainman. ActiveChain (). GetLocator (state.m_chain_sync .m_work_header ->pprev ),
4506
+ GetLocator (state.m_chain_sync .m_work_header ->pprev ),
4506
4507
peer);
4507
4508
LogPrint (BCLog::NET, " sending getheaders to outbound peer=%d to verify chain work (current best known block:%s, benchmark blockhash: %s)\n " , pto.GetId (), state.pindexBestKnownBlock != nullptr ? state.pindexBestKnownBlock ->GetBlockHash ().ToString () : " <none>" , state.m_chain_sync .m_work_header ->GetBlockHash ().ToString ());
4508
4509
state.m_chain_sync .m_sent_getheaders = true ;
@@ -4924,7 +4925,7 @@ bool PeerManagerImpl::SendMessages(CNode* pto)
4924
4925
got back an empty response. */
4925
4926
if (pindexStart->pprev )
4926
4927
pindexStart = pindexStart->pprev ;
4927
- if (MaybeSendGetHeaders (*pto, m_chainman. ActiveChain (). GetLocator (pindexStart), *peer)) {
4928
+ if (MaybeSendGetHeaders (*pto, GetLocator (pindexStart), *peer)) {
4928
4929
LogPrint (BCLog::NET, " initial getheaders (%d) to peer=%d (startheight:%d)\n " , pindexStart->nHeight , pto->GetId (), peer->m_starting_height );
4929
4930
4930
4931
state.fSyncStarted = true ;
0 commit comments