@@ -349,8 +349,11 @@ void CRecoveredSigsDb::CleanupOldVotes(int64_t maxAge)
349349// ////////////////
350350
351351CSigningManager::CSigningManager (const CActiveMasternodeManager* const mn_activeman, const CChainState& chainstate,
352- const CQuorumManager& _qman, const std::unique_ptr<PeerManager>& peerman, bool fMemory , bool fWipe ) :
353- db (fMemory , fWipe ), m_mn_activeman(mn_activeman), m_chainstate(chainstate), qman(_qman), m_peerman(peerman)
352+ const CQuorumManager& _qman, bool fMemory , bool fWipe ) :
353+ db (fMemory , fWipe ),
354+ m_mn_activeman (mn_activeman),
355+ m_chainstate (chainstate),
356+ qman (_qman)
354357{
355358}
356359
@@ -381,13 +384,14 @@ bool CSigningManager::GetRecoveredSigForGetData(const uint256& hash, CRecoveredS
381384 return true ;
382385}
383386
384- PeerMsgRet CSigningManager::ProcessMessage (const CNode& pfrom, const std::string& msg_type, CDataStream& vRecv)
387+ PeerMsgRet CSigningManager::ProcessMessage (const CNode& pfrom, PeerManager& peerman, const std::string& msg_type,
388+ CDataStream& vRecv)
385389{
386390 if (msg_type == NetMsgType::QSIGREC) {
387391 auto recoveredSig = std::make_shared<CRecoveredSig>();
388392 vRecv >> *recoveredSig;
389393
390- return ProcessMessageRecoveredSig (pfrom, recoveredSig);
394+ return ProcessMessageRecoveredSig (pfrom, peerman, recoveredSig);
391395 }
392396 return {};
393397}
@@ -416,10 +420,11 @@ static bool PreVerifyRecoveredSig(const CQuorumManager& quorum_manager, const CR
416420 return true ;
417421}
418422
419- PeerMsgRet CSigningManager::ProcessMessageRecoveredSig (const CNode& pfrom, const std::shared_ptr<const CRecoveredSig>& recoveredSig)
423+ PeerMsgRet CSigningManager::ProcessMessageRecoveredSig (const CNode& pfrom, PeerManager& peerman,
424+ const std::shared_ptr<const CRecoveredSig>& recoveredSig)
420425{
421- WITH_LOCK (::cs_main, Assert (m_peerman)-> EraseObjectRequest (pfrom. GetId (),
422- CInv (MSG_QUORUM_RECOVERED_SIG, recoveredSig->GetHash ())));
426+ WITH_LOCK (::cs_main,
427+ peerman. EraseObjectRequest (pfrom. GetId (), CInv (MSG_QUORUM_RECOVERED_SIG, recoveredSig->GetHash ())));
423428
424429 bool ban = false ;
425430 if (!PreVerifyRecoveredSig (qman, *recoveredSig, ban)) {
@@ -517,22 +522,22 @@ void CSigningManager::CollectPendingRecoveredSigsToVerify(
517522 }
518523}
519524
520- void CSigningManager::ProcessPendingReconstructedRecoveredSigs ()
525+ void CSigningManager::ProcessPendingReconstructedRecoveredSigs (PeerManager& peerman )
521526{
522527 decltype (pendingReconstructedRecoveredSigs) m;
523528 WITH_LOCK (cs_pending, swap (m, pendingReconstructedRecoveredSigs));
524529
525530 for (const auto & p : m) {
526- ProcessRecoveredSig (p.second );
531+ ProcessRecoveredSig (p.second , peerman );
527532 }
528533}
529534
530- bool CSigningManager::ProcessPendingRecoveredSigs ()
535+ bool CSigningManager::ProcessPendingRecoveredSigs (PeerManager& peerman )
531536{
532537 std::unordered_map<NodeId, std::list<std::shared_ptr<const CRecoveredSig>>> recSigsByNode;
533538 std::unordered_map<std::pair<Consensus::LLMQType, uint256>, CQuorumCPtr, StaticSaltedHasher> quorums;
534539
535- ProcessPendingReconstructedRecoveredSigs ();
540+ ProcessPendingReconstructedRecoveredSigs (peerman );
536541
537542 const size_t nMaxBatchSize{32 };
538543 CollectPendingRecoveredSigsToVerify (nMaxBatchSize, recSigsByNode, quorums);
@@ -575,7 +580,7 @@ bool CSigningManager::ProcessPendingRecoveredSigs()
575580
576581 if (batchVerifier.badSources .count (nodeId)) {
577582 LogPrint (BCLog::LLMQ, " CSigningManager::%s -- invalid recSig from other node, banning peer=%d\n " , __func__, nodeId);
578- Assert (m_peerman)-> Misbehaving (nodeId, 100 );
583+ peerman. Misbehaving (nodeId, 100 );
579584 continue ;
580585 }
581586
@@ -584,15 +589,15 @@ bool CSigningManager::ProcessPendingRecoveredSigs()
584589 continue ;
585590 }
586591
587- ProcessRecoveredSig (recSig);
592+ ProcessRecoveredSig (recSig, peerman );
588593 }
589594 }
590595
591596 return recSigsByNode.size () >= nMaxBatchSize;
592597}
593598
594599// signature must be verified already
595- void CSigningManager::ProcessRecoveredSig (const std::shared_ptr<const CRecoveredSig>& recoveredSig)
600+ void CSigningManager::ProcessRecoveredSig (const std::shared_ptr<const CRecoveredSig>& recoveredSig, PeerManager& peerman )
596601{
597602 auto llmqType = recoveredSig->getLlmqType ();
598603
@@ -631,12 +636,12 @@ void CSigningManager::ProcessRecoveredSig(const std::shared_ptr<const CRecovered
631636 WITH_LOCK (cs_pending, pendingReconstructedRecoveredSigs.erase (recoveredSig->GetHash ()));
632637
633638 if (m_mn_activeman != nullptr ) {
634- Assert (m_peerman)-> RelayRecoveredSig (recoveredSig->GetHash ());
639+ peerman. RelayRecoveredSig (recoveredSig->GetHash ());
635640 }
636641
637642 auto listeners = WITH_LOCK (cs_listeners, return recoveredSigsListeners);
638643 for (auto & l : listeners) {
639- Assert (m_peerman)-> PostProcessMessage (l->HandleNewRecoveredSig (*recoveredSig));
644+ peerman. PostProcessMessage (l->HandleNewRecoveredSig (*recoveredSig));
640645 }
641646
642647 GetMainSignals ().NotifyRecoveredSig (recoveredSig);
@@ -799,14 +804,14 @@ bool CSigningManager::GetVoteForId(Consensus::LLMQType llmqType, const uint256&
799804 return db.GetVoteForId (llmqType, id, msgHashRet);
800805}
801806
802- void CSigningManager::StartWorkerThread ()
807+ void CSigningManager::StartWorkerThread (PeerManager& peerman )
803808{
804809 // can't start new thread if we have one running already
805810 if (workThread.joinable ()) {
806811 assert (false );
807812 }
808813
809- workThread = std::thread (&util::TraceThread, " sigshares" , [this ] { WorkThreadMain (); });
814+ workThread = std::thread (&util::TraceThread, " sigshares" , [this , &peerman ] { WorkThreadMain (peerman ); });
810815}
811816
812817void CSigningManager::StopWorkerThread ()
@@ -826,10 +831,10 @@ void CSigningManager::InterruptWorkerThread()
826831 workInterrupt ();
827832}
828833
829- void CSigningManager::WorkThreadMain ()
834+ void CSigningManager::WorkThreadMain (PeerManager& peerman )
830835{
831836 while (!workInterrupt) {
832- bool fMoreWork = ProcessPendingRecoveredSigs ();
837+ bool fMoreWork = ProcessPendingRecoveredSigs (peerman );
833838
834839 Cleanup ();
835840
0 commit comments