Skip to content

Commit be62366

Browse files
committed
refactor: pass connman in constructor of NetHandler's child which need it
1 parent dc08ef4 commit be62366

File tree

11 files changed

+50
-45
lines changed

11 files changed

+50
-45
lines changed

src/governance/net_governance.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,17 @@
1414

1515
class CConnman;
1616

17-
void NetGovernance::Schedule(CScheduler& scheduler, CConnman& connman)
17+
void NetGovernance::Schedule(CScheduler& scheduler)
1818
{
1919
// Code below is meant to be running only if governance validation is enabled
2020
//
2121
if (!m_gov_manager.IsValid()) return;
2222
scheduler.scheduleEvery(
23-
[this, &connman]() -> void {
23+
[this]() -> void {
2424
if (!m_node_sync.IsSynced()) return;
2525

2626
// CHECK OBJECTS WE'VE ASKED FOR, REMOVE OLD ENTRIES
27-
m_gov_manager.RequestOrphanObjects(connman);
27+
m_gov_manager.RequestOrphanObjects(m_connman);
2828

2929
// CHECK AND REMOVE - REPROCESS GOVERNANCE OBJECTS
3030
m_gov_manager.CheckAndRemove();
@@ -42,7 +42,7 @@ void NetGovernance::Schedule(CScheduler& scheduler, CConnman& connman)
4242
Params().IsMockableChain() ? std::chrono::seconds{1} : std::chrono::seconds{5});
4343
}
4444

45-
void NetGovernance::ProcessMessage(CNode& peer, CConnman& connman, const std::string& msg_type, CDataStream& vRecv)
45+
void NetGovernance::ProcessMessage(CNode& peer, const std::string& msg_type, CDataStream& vRecv)
4646
{
4747
if (!m_gov_manager.IsValid()) return;
4848
if (!m_node_sync.IsBlockchainSynced()) return;
@@ -61,9 +61,9 @@ void NetGovernance::ProcessMessage(CNode& peer, CConnman& connman, const std::st
6161

6262
LogPrint(BCLog::GOBJECT, "MNGOVERNANCESYNC -- syncing governance objects to our peer %s\n", peer.GetLogString());
6363
if (nProp == uint256()) {
64-
m_peer_manager->PeerPostProcessMessage(m_gov_manager.SyncObjects(peer, connman));
64+
m_peer_manager->PeerPostProcessMessage(m_gov_manager.SyncObjects(peer, m_connman));
6565
} else {
66-
m_peer_manager->PeerPostProcessMessage(m_gov_manager.SyncSingleObjVotes(peer, nProp, filter, connman));
66+
m_peer_manager->PeerPostProcessMessage(m_gov_manager.SyncSingleObjVotes(peer, nProp, filter, m_connman));
6767
}
6868
}
6969
// A NEW GOVERNANCE OBJECT HAS ARRIVED
@@ -124,7 +124,7 @@ void NetGovernance::ProcessMessage(CNode& peer, CConnman& connman, const std::st
124124
}
125125

126126
CGovernanceException exception;
127-
if (m_gov_manager.ProcessVote(&peer, vote, exception, connman)) {
127+
if (m_gov_manager.ProcessVote(&peer, vote, exception, m_connman)) {
128128
LogPrint(BCLog::GOBJECT, "MNGOVERNANCEOBJECTVOTE -- %s new\n", strHash);
129129
m_node_sync.BumpAssetLastTime("MNGOVERNANCEOBJECTVOTE");
130130

src/governance/net_governance.h

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,22 @@ class CMasternodeSync;
1313
class NetGovernance final : public NetHandler
1414
{
1515
public:
16-
NetGovernance(PeerManagerInternal* peer_manager, CGovernanceManager& gov_manager, CMasternodeSync& node_sync) :
16+
NetGovernance(PeerManagerInternal* peer_manager, CGovernanceManager& gov_manager, CMasternodeSync& node_sync,
17+
CConnman& connman) :
1718
NetHandler(peer_manager),
1819
m_gov_manager(gov_manager),
19-
m_node_sync(node_sync)
20+
m_node_sync(node_sync),
21+
m_connman(connman)
2022
{
2123
}
22-
void Schedule(CScheduler& scheduler, CConnman& connman) override;
24+
void Schedule(CScheduler& scheduler) override;
2325

24-
void ProcessMessage(CNode& peer, CConnman& connman, const std::string& msg_type, CDataStream& vRecv) override;
26+
void ProcessMessage(CNode& peer, const std::string& msg_type, CDataStream& vRecv) override;
2527

2628
private:
2729
CGovernanceManager& m_gov_manager;
2830
CMasternodeSync& m_node_sync;
31+
CConnman& m_connman;
2932
};
3033

3134
#endif // BITCOIN_GOVERNANCE_NET_GOVERNANCE_H

src/init.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2235,9 +2235,9 @@ bool AppInitMain(NodeContext& node, interfaces::BlockAndHeaderTipInfo* tip_info)
22352235
}
22362236
return InitError(strprintf(_("Failed to clear governance cache at %s"), file_path));
22372237
}
2238-
node.peerman->AddExtraHandler(std::make_unique<NetGovernance>(node.peerman.get(), *node.govman, *node.mn_sync));
2238+
node.peerman->AddExtraHandler(std::make_unique<NetGovernance>(node.peerman.get(), *node.govman, *node.mn_sync, *node.connman));
22392239
}
2240-
node.peerman->AddExtraHandler(std::make_unique<SyncManager>(node.peerman.get(), *node.govman, *node.mn_sync, *node.netfulfilledman));
2240+
node.peerman->AddExtraHandler(std::make_unique<SyncManager>(node.peerman.get(), *node.govman, *node.mn_sync, *node.connman, *node.netfulfilledman));
22412241

22422242
// ********************************************************* Step 8: start indexers
22432243
if (args.GetBoolArg("-txindex", DEFAULT_TXINDEX)) {

src/instantsend/net_instantsend.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
#include <util/thread.h>
1515
#include <validation.h>
1616

17-
void NetInstantSend::ProcessMessage(CNode& pfrom, CConnman&, const std::string& msg_type, CDataStream& vRecv)
17+
void NetInstantSend::ProcessMessage(CNode& pfrom, const std::string& msg_type, CDataStream& vRecv)
1818
{
1919
if (msg_type != NetMsgType::ISDLOCK) {
2020
return;

src/instantsend/net_instantsend.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ class NetInstantSend final : public NetHandler
3131
{
3232
workInterrupt.reset();
3333
}
34-
void ProcessMessage(CNode& pfrom, CConnman&, const std::string& msg_type, CDataStream& vRecv) override;
34+
void ProcessMessage(CNode& pfrom, const std::string& msg_type, CDataStream& vRecv) override;
3535

3636
void Start() override;
3737
void Stop() override;

src/llmq/net_signing.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
#include <unordered_map>
1818

19-
void NetSigning::ProcessMessage(CNode& pfrom, CConnman&, const std::string& msg_type, CDataStream& vRecv)
19+
void NetSigning::ProcessMessage(CNode& pfrom, const std::string& msg_type, CDataStream& vRecv)
2020
{
2121
if (msg_type != NetMsgType::QSIGREC) return;
2222

src/llmq/net_signing.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class NetSigning final : public NetHandler
2525
{
2626
workInterrupt.reset();
2727
}
28-
void ProcessMessage(CNode& pfrom, CConnman&, const std::string& msg_type, CDataStream& vRecv) override;
28+
void ProcessMessage(CNode& pfrom, const std::string& msg_type, CDataStream& vRecv) override;
2929

3030
[[nodiscard]] bool ProcessPendingRecoveredSigs();
3131
void ProcessRecoveredSig(std::shared_ptr<const llmq::CRecoveredSig> recoveredSig, bool consider_proactive_relay);

src/net_processing.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1696,7 +1696,7 @@ void PeerManagerImpl::InterruptHandlers()
16961696
void PeerManagerImpl::ScheduleHandlers(CScheduler& scheduler)
16971697
{
16981698
for (auto& handler : m_handlers) {
1699-
handler->Schedule(scheduler, m_connman);
1699+
handler->Schedule(scheduler);
17001700
}
17011701
}
17021702

@@ -5464,7 +5464,7 @@ void PeerManagerImpl::ProcessMessage(
54645464
}
54655465

54665466
for (const auto& handler : m_handlers) {
5467-
handler->ProcessMessage(pfrom, m_connman, msg_type, vRecv);
5467+
handler->ProcessMessage(pfrom, msg_type, vRecv);
54685468
}
54695469
return;
54705470
}

src/net_processing.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,8 @@ class NetHandler
8080
virtual void Start() {}
8181
virtual void Stop() {}
8282
virtual void Interrupt() {}
83-
virtual void Schedule(CScheduler& scheduler, CConnman& connman) {}
84-
virtual void ProcessMessage(CNode& pfrom, CConnman& connman, const std::string& msg_type, CDataStream& vRecv) {}
83+
virtual void Schedule(CScheduler& scheduler) {}
84+
virtual void ProcessMessage(CNode& pfrom, const std::string& msg_type, CDataStream& vRecv) {}
8585
protected:
8686
PeerManagerInternal* m_peer_manager;
8787
};

src/node/sync_manager.cpp

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -19,24 +19,24 @@
1919

2020
class CConnman;
2121

22-
void SyncManager::Schedule(CScheduler& scheduler, CConnman& connman)
22+
void SyncManager::Schedule(CScheduler& scheduler)
2323
{
2424
scheduler.scheduleEvery(
25-
[this, &connman]() -> void {
25+
[this]() -> void {
2626
if (ShutdownRequested()) return;
27-
ProcessTick(connman);
27+
ProcessTick();
2828
},
2929
std::chrono::seconds{1});
3030
}
3131

32-
void SyncManager::SendGovernanceSyncRequest(CNode* pnode, CConnman& connman) const
32+
void SyncManager::SendGovernanceSyncRequest(CNode* pnode) const
3333
{
3434
CNetMsgMaker msgMaker(pnode->GetCommonVersion());
3535
CBloomFilter filter;
36-
connman.PushMessage(pnode, msgMaker.Make(NetMsgType::MNGOVERNANCESYNC, uint256(), filter));
36+
m_connman.PushMessage(pnode, msgMaker.Make(NetMsgType::MNGOVERNANCESYNC, uint256(), filter));
3737
}
3838

39-
int SyncManager::RequestGovernanceObjectVotes(const std::vector<CNode*>& vNodesCopy, CConnman& connman) const
39+
int SyncManager::RequestGovernanceObjectVotes(const std::vector<CNode*>& vNodesCopy) const
4040
{
4141
// Maximum number of nodes to request votes from for the same object hash on real networks
4242
// (mainnet, testnet, devnets). Keep this low to avoid unnecessary bandwidth usage.
@@ -97,7 +97,7 @@ int SyncManager::RequestGovernanceObjectVotes(const std::vector<CNode*>& vNodesC
9797
// Don't try to sync any data from outbound non-relay "masternode" connections.
9898
// Inbound connection this early is most likely a "masternode" connection
9999
// initiated from another node, so skip it too.
100-
if (!pnode->CanRelay() || (connman.IsActiveMasternode() && pnode->IsInboundConn())) continue;
100+
if (!pnode->CanRelay() || (m_connman.IsActiveMasternode() && pnode->IsInboundConn())) continue;
101101
// stop early to prevent setAskFor overflow
102102
{
103103
LOCK(::cs_main);
@@ -107,7 +107,7 @@ int SyncManager::RequestGovernanceObjectVotes(const std::vector<CNode*>& vNodesC
107107
// to early to ask the same node
108108
if (mapAskedRecently[nHashGovobj].count(pnode->addr)) continue;
109109

110-
m_gov_manager.RequestGovernanceObject(pnode, nHashGovobj, connman, true);
110+
m_gov_manager.RequestGovernanceObject(pnode, nHashGovobj, m_connman, true);
111111
mapAskedRecently[nHashGovobj][pnode->addr] = nNow + nTimeout;
112112
fAsked = true;
113113
// stop loop if max number of peers per obj was asked
@@ -127,7 +127,7 @@ int SyncManager::RequestGovernanceObjectVotes(const std::vector<CNode*>& vNodesC
127127
return int(vTriggerObjHashes.size() + vOtherObjHashes.size());
128128
}
129129

130-
void SyncManager::ProcessTick(CConnman& connman)
130+
void SyncManager::ProcessTick()
131131
{
132132
assert(m_netfulfilledman.IsValid());
133133

@@ -139,7 +139,7 @@ void SyncManager::ProcessTick(CConnman& connman)
139139

140140
// reset the sync process if the last call to this function was more than 60 minutes ago (client was in sleep mode)
141141
static int64_t nTimeLastProcess = GetTime();
142-
if (!Params().IsMockableChain() && GetTime() - nTimeLastProcess > 60 * 60 && !connman.IsActiveMasternode()) {
142+
if (!Params().IsMockableChain() && GetTime() - nTimeLastProcess > 60 * 60 && !m_connman.IsActiveMasternode()) {
143143
LogPrintf("Sync Tick -- WARNING: no actions for too long, restarting sync...\n");
144144
m_node_sync.Reset(true);
145145
nTimeLastProcess = GetTime();
@@ -152,11 +152,11 @@ void SyncManager::ProcessTick(CConnman& connman)
152152
}
153153

154154
nTimeLastProcess = GetTime();
155-
const CConnman::NodesSnapshot snap{connman, /* cond = */ CConnman::FullyConnectedOnly};
155+
const CConnman::NodesSnapshot snap{m_connman, /* cond = */ CConnman::FullyConnectedOnly};
156156

157157
// gradually request the rest of the votes after sync finished
158158
if (m_node_sync.IsSynced()) {
159-
RequestGovernanceObjectVotes(snap.Nodes(), connman);
159+
RequestGovernanceObjectVotes(snap.Nodes());
160160
return;
161161
}
162162

@@ -175,7 +175,7 @@ void SyncManager::ProcessTick(CConnman& connman)
175175
// Don't try to sync any data from outbound non-relay "masternode" connections.
176176
// Inbound connection this early is most likely a "masternode" connection
177177
// initiated from another node, so skip it too.
178-
if (!pnode->CanRelay() || (connman.IsActiveMasternode() && pnode->IsInboundConn())) continue;
178+
if (!pnode->CanRelay() || (m_connman.IsActiveMasternode() && pnode->IsInboundConn())) continue;
179179

180180
{
181181
if ((pnode->HasPermission(NetPermissionFlags::NoBan) || pnode->IsManualConn()) &&
@@ -199,7 +199,7 @@ void SyncManager::ProcessTick(CConnman& connman)
199199
// always get sporks first, only request once from each peer
200200
m_netfulfilledman.AddFulfilledRequest(pnode->addr, "spork-sync");
201201
// get current network sporks
202-
connman.PushMessage(pnode, msgMaker.Make(NetMsgType::GETSPORKS));
202+
m_connman.PushMessage(pnode, msgMaker.Make(NetMsgType::GETSPORKS));
203203
LogPrint(BCLog::MNSYNC, "Sync Tick -- nTick %d asset_id %d -- requesting sporks from peer=%d\n", nTick,
204204
asset_id, pnode->GetId());
205205
}
@@ -227,7 +227,7 @@ void SyncManager::ProcessTick(CConnman& connman)
227227
"mempool-sync");
228228
if (!pNodeTmp->IsInboundConn() && !fRequestedEarlier && !pNodeTmp->IsBlockRelayOnly()) {
229229
m_netfulfilledman.AddFulfilledRequest(pNodeTmp->addr, "mempool-sync");
230-
connman.PushMessage(pNodeTmp, msgMaker.Make(NetMsgType::MEMPOOL));
230+
m_connman.PushMessage(pNodeTmp, msgMaker.Make(NetMsgType::MEMPOOL));
231231
LogPrint(BCLog::MNSYNC, /* Continued */
232232
"Sync Tick -- nTick %d asset_id %d -- syncing mempool from peer=%d\n", nTick,
233233
asset_id, pNodeTmp->GetId());
@@ -268,7 +268,7 @@ void SyncManager::ProcessTick(CConnman& connman)
268268

269269
m_node_sync.BumpAttempt();
270270

271-
SendGovernanceSyncRequest(pnode, connman);
271+
SendGovernanceSyncRequest(pnode);
272272

273273
break; // this will cause each peer to get one request each six seconds for the various assets we need
274274
}
@@ -287,7 +287,7 @@ void SyncManager::ProcessTick(CConnman& connman)
287287
continue; // to early for this node
288288
}
289289
const std::vector<CNode*> vNodeCopy{pnode};
290-
int nObjsLeftToAsk = RequestGovernanceObjectVotes(vNodeCopy, connman);
290+
int nObjsLeftToAsk = RequestGovernanceObjectVotes(vNodeCopy);
291291
// check for data
292292
if (nObjsLeftToAsk == 0) {
293293
static int64_t nTimeNoObjectsLeft = 0;
@@ -319,7 +319,7 @@ void SyncManager::ProcessTick(CConnman& connman)
319319
}
320320
}
321321

322-
void SyncManager::ProcessMessage(CNode& peer, CConnman&, const std::string& msg_type, CDataStream& vRecv)
322+
void SyncManager::ProcessMessage(CNode& peer, const std::string& msg_type, CDataStream& vRecv)
323323
{
324324
//Sync status count
325325
if (msg_type != NetMsgType::SYNCSTATUSCOUNT) return;

0 commit comments

Comments
 (0)