@@ -2285,7 +2285,7 @@ void PeerManagerImpl::HandleFewUnconnectingHeaders(CNode& pfrom, Peer& peer,
22852285
22862286 nodestate->nUnconnectingHeaders ++;
22872287 // 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)) {
22892289 LogPrint (BCLog::NET, " received header %s: missing prev block %s, sending getheaders (%d) to end (peer=%d, nUnconnectingHeaders=%d)\n " ,
22902290 headers[0 ].GetHash ().ToString (),
22912291 headers[0 ].hashPrevBlock .ToString (),
@@ -2506,11 +2506,12 @@ void PeerManagerImpl::ProcessHeadersMessage(CNode& pfrom, Peer& peer,
25062506 return ;
25072507 }
25082508 }
2509+ Assume (pindexLast);
25092510
25102511 // Consider fetching more headers.
25112512 if (nCount == MAX_HEADERS_RESULTS) {
25122513 // 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)) {
25142515 LogPrint (BCLog::NET, " more getheaders (%d) to end to peer=%d (startheight:%d)\n " ,
25152516 pindexLast->nHeight , pfrom.GetId (), peer.m_starting_height );
25162517 }
@@ -3285,7 +3286,7 @@ void PeerManagerImpl::ProcessMessage(CNode& pfrom, const std::string& msg_type,
32853286 // use if we turned on sync with all peers).
32863287 CNodeState& state{*Assert (State (pfrom.GetId ()))};
32873288 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)) {
32893290 LogPrint (BCLog::NET, " getheaders (%d) %s to peer=%d\n " ,
32903291 m_chainman.m_best_header ->nHeight , best_block->ToString (),
32913292 pfrom.GetId ());
@@ -3752,7 +3753,7 @@ void PeerManagerImpl::ProcessMessage(CNode& pfrom, const std::string& msg_type,
37523753 if (!m_chainman.m_blockman .LookupBlockIndex (cmpctblock.header .hashPrevBlock )) {
37533754 // Doesn't connect (or is genesis), instead of DoSing in AcceptBlockHeader, request deeper headers
37543755 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);
37563757 }
37573758 return ;
37583759 }
@@ -4502,7 +4503,7 @@ void PeerManagerImpl::ConsiderEviction(CNode& pto, Peer& peer, std::chrono::seco
45024503 // getheaders in-flight already, in which case the peer should
45034504 // still respond to us with a sufficiently high work chain tip.
45044505 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 ),
45064507 peer);
45074508 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 ());
45084509 state.m_chain_sync .m_sent_getheaders = true ;
@@ -4924,7 +4925,7 @@ bool PeerManagerImpl::SendMessages(CNode* pto)
49244925 got back an empty response. */
49254926 if (pindexStart->pprev )
49264927 pindexStart = pindexStart->pprev ;
4927- if (MaybeSendGetHeaders (*pto, m_chainman. ActiveChain (). GetLocator (pindexStart), *peer)) {
4928+ if (MaybeSendGetHeaders (*pto, GetLocator (pindexStart), *peer)) {
49284929 LogPrint (BCLog::NET, " initial getheaders (%d) to peer=%d (startheight:%d)\n " , pindexStart->nHeight , pto->GetId (), peer->m_starting_height );
49294930
49304931 state.fSyncStarted = true ;
0 commit comments