Skip to content

Commit e868aff

Browse files
committed
refactor: use const-ref when accessing MnNetInfo::addr if read-only
1 parent aaabc35 commit e868aff

File tree

16 files changed

+71
-62
lines changed

16 files changed

+71
-62
lines changed

src/coinjoin/client.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ void CCoinJoinClientSession::ProcessMessage(CNode& peer, CChainState& active_cha
186186
if (!m_mn_sync.IsBlockchainSynced()) return;
187187

188188
if (!mixingMasternode) return;
189-
if (mixingMasternode->pdmnState->netInfo.m_addr != peer.addr) return;
189+
if (mixingMasternode->pdmnState->netInfo.GetPrimary() != peer.addr) return;
190190

191191
if (msg_type == NetMsgType::DSSTATUSUPDATE) {
192192
CCoinJoinStatusUpdate psssup;
@@ -1106,7 +1106,7 @@ bool CCoinJoinClientSession::JoinExistingQueue(CAmount nBalanceNeedsAnonymized,
11061106

11071107
m_clientman.AddUsedMasternode(dsq.masternodeOutpoint);
11081108

1109-
if (connman.IsMasternodeOrDisconnectRequested(dmn->pdmnState->netInfo.m_addr)) {
1109+
if (connman.IsMasternodeOrDisconnectRequested(dmn->pdmnState->netInfo.GetPrimary())) {
11101110
WalletCJLogPrint(m_wallet, /* Continued */
11111111
"CCoinJoinClientSession::JoinExistingQueue -- skipping connection, masternode=%s\n", dmn->proTxHash.ToString());
11121112
continue;
@@ -1178,7 +1178,7 @@ bool CCoinJoinClientSession::StartNewQueue(CAmount nBalanceNeedsAnonymized, CCon
11781178
continue;
11791179
}
11801180

1181-
if (connman.IsMasternodeOrDisconnectRequested(dmn->pdmnState->netInfo.m_addr)) {
1181+
if (connman.IsMasternodeOrDisconnectRequested(dmn->pdmnState->netInfo.GetPrimary())) {
11821182
WalletCJLogPrint(m_wallet, "CCoinJoinClientSession::StartNewQueue -- skipping connection, masternode=%s\n",
11831183
dmn->proTxHash.ToString());
11841184
nTries++;
@@ -1218,7 +1218,7 @@ bool CCoinJoinClientSession::ProcessPendingDsaRequest(CConnman& connman)
12181218

12191219
CService mn_addr;
12201220
if (auto dmn = m_dmnman.GetListAtChainTip().GetMN(pendingDsaRequest.GetProTxHash())) {
1221-
mn_addr = Assert(dmn->pdmnState)->netInfo.m_addr;
1221+
mn_addr = Assert(dmn->pdmnState)->netInfo.GetPrimary();
12221222
} else {
12231223
WalletCJLogPrint(m_wallet, "CCoinJoinClientSession::%s -- cannot find address to connect, masternode=%s\n", __func__,
12241224
pendingDsaRequest.GetProTxHash().ToString());
@@ -1820,7 +1820,7 @@ void CCoinJoinClientSession::RelayIn(const CCoinJoinEntry& entry, CConnman& conn
18201820
{
18211821
if (!mixingMasternode) return;
18221822

1823-
connman.ForNode(mixingMasternode->pdmnState->netInfo.m_addr, [&entry, &connman, this](CNode* pnode) {
1823+
connman.ForNode(mixingMasternode->pdmnState->netInfo.GetPrimary(), [&entry, &connman, this](CNode* pnode) {
18241824
WalletCJLogPrint(m_wallet, "CCoinJoinClientSession::RelayIn -- found master, relaying message to %s\n",
18251825
pnode->addr.ToStringAddrPort());
18261826
CNetMsgMaker msgMaker(pnode->GetCommonVersion());
@@ -1876,7 +1876,7 @@ void CCoinJoinClientSession::GetJsonInfo(UniValue& obj) const
18761876
assert(mixingMasternode->pdmnState);
18771877
obj.pushKV("protxhash", mixingMasternode->proTxHash.ToString());
18781878
obj.pushKV("outpoint", mixingMasternode->collateralOutpoint.ToStringShort());
1879-
obj.pushKV("service", mixingMasternode->pdmnState->netInfo.m_addr.ToStringAddrPort());
1879+
obj.pushKV("service", mixingMasternode->pdmnState->netInfo.GetPrimary().ToStringAddrPort());
18801880
}
18811881
obj.pushKV("denomination", ValueFromAmount(CoinJoin::DenominationToAmount(nSessionDenom)));
18821882
obj.pushKV("state", GetStateString());

src/evo/core_write.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@
6767
ret.pushKV("type", ToUnderlying(nType));
6868
ret.pushKV("collateralHash", collateralOutpoint.hash.ToString());
6969
ret.pushKV("collateralIndex", (int)collateralOutpoint.n);
70-
ret.pushKV("service", netInfo.m_addr.ToStringAddrPort());
70+
ret.pushKV("service", netInfo.GetPrimary().ToStringAddrPort());
7171
ret.pushKV("ownerAddress", EncodeDestination(PKHash(keyIDOwner)));
7272
ret.pushKV("votingAddress", EncodeDestination(PKHash(keyIDVoting)));
7373
if (CTxDestination dest; ExtractDestination(scriptPayout, dest)) {
@@ -114,7 +114,7 @@
114114
ret.pushKV("version", nVersion);
115115
ret.pushKV("type", ToUnderlying(nType));
116116
ret.pushKV("proTxHash", proTxHash.ToString());
117-
ret.pushKV("service", netInfo.m_addr.ToStringAddrPort());
117+
ret.pushKV("service", netInfo.GetPrimary().ToStringAddrPort());
118118
if (CTxDestination dest; ExtractDestination(scriptOperatorPayout, dest)) {
119119
ret.pushKV("operatorPayoutAddress", EncodeDestination(dest));
120120
}

src/evo/deterministicmns.cpp

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -470,10 +470,11 @@ void CDeterministicMNList::AddMN(const CDeterministicMNCPtr& dmn, bool fBumpTota
470470
throw(std::runtime_error(strprintf("%s: Can't add a masternode %s with a duplicate collateralOutpoint=%s", __func__,
471471
dmn->proTxHash.ToString(), dmn->collateralOutpoint.ToStringShort())));
472472
}
473-
if (dmn->pdmnState->netInfo.m_addr != CService() && !AddUniqueProperty(*dmn, dmn->pdmnState->netInfo)) {
473+
if (dmn->pdmnState->netInfo.GetPrimary() != CService() && !AddUniqueProperty(*dmn, dmn->pdmnState->netInfo)) {
474474
mnUniquePropertyMap = mnUniquePropertyMapSaved;
475475
throw(std::runtime_error(strprintf("%s: Can't add a masternode %s with a duplicate address=%s", __func__,
476-
dmn->proTxHash.ToString(), dmn->pdmnState->netInfo.m_addr.ToStringAddrPort())));
476+
dmn->proTxHash.ToString(),
477+
dmn->pdmnState->netInfo.GetPrimary().ToStringAddrPort())));
477478
}
478479
if (!AddUniqueProperty(*dmn, dmn->pdmnState->keyIDOwner)) {
479480
mnUniquePropertyMap = mnUniquePropertyMapSaved;
@@ -514,7 +515,8 @@ void CDeterministicMNList::UpdateMN(const CDeterministicMN& oldDmn, const std::s
514515
if (!UpdateUniqueProperty(*dmn, oldState->netInfo, pdmnState->netInfo)) {
515516
mnUniquePropertyMap = mnUniquePropertyMapSaved;
516517
throw(std::runtime_error(strprintf("%s: Can't update a masternode %s with a duplicate address=%s", __func__,
517-
oldDmn.proTxHash.ToString(), pdmnState->netInfo.m_addr.ToStringAddrPort())));
518+
oldDmn.proTxHash.ToString(),
519+
pdmnState->netInfo.GetPrimary().ToStringAddrPort())));
518520
}
519521
if (!UpdateUniqueProperty(*dmn, oldState->keyIDOwner, pdmnState->keyIDOwner)) {
520522
mnUniquePropertyMap = mnUniquePropertyMapSaved;
@@ -571,10 +573,10 @@ void CDeterministicMNList::RemoveMN(const uint256& proTxHash)
571573
throw(std::runtime_error(strprintf("%s: Can't delete a masternode %s with a collateralOutpoint=%s", __func__,
572574
proTxHash.ToString(), dmn->collateralOutpoint.ToStringShort())));
573575
}
574-
if (dmn->pdmnState->netInfo.m_addr != CService() && !DeleteUniqueProperty(*dmn, dmn->pdmnState->netInfo)) {
576+
if (dmn->pdmnState->netInfo.GetPrimary() != CService() && !DeleteUniqueProperty(*dmn, dmn->pdmnState->netInfo)) {
575577
mnUniquePropertyMap = mnUniquePropertyMapSaved;
576578
throw(std::runtime_error(strprintf("%s: Can't delete a masternode %s with a address=%s", __func__,
577-
proTxHash.ToString(), dmn->pdmnState->netInfo.m_addr.ToStringAddrPort())));
579+
proTxHash.ToString(), dmn->pdmnState->netInfo.GetPrimary().ToStringAddrPort())));
578580
}
579581
if (!DeleteUniqueProperty(*dmn, dmn->pdmnState->keyIDOwner)) {
580582
mnUniquePropertyMap = mnUniquePropertyMapSaved;
@@ -800,7 +802,7 @@ bool CDeterministicMNManager::BuildNewListFromBlock(const CBlock& block, gsl::no
800802

801803
auto dmnState = std::make_shared<CDeterministicMNState>(proTx);
802804
dmnState->nRegisteredHeight = nHeight;
803-
if (proTx.netInfo.m_addr == CService()) {
805+
if (proTx.netInfo.GetPrimary() == CService()) {
804806
// start in banned pdmnState as we need to wait for a ProUpServTx
805807
dmnState->BanIfNotBanned(nHeight);
806808
}
@@ -1178,7 +1180,7 @@ void CDeterministicMNManager::CleanupCache(int nHeight)
11781180
template <typename ProTx>
11791181
static bool CheckService(const ProTx& proTx, TxValidationState& state)
11801182
{
1181-
const auto& addr{proTx.netInfo.m_addr};
1183+
const auto addr{proTx.netInfo.GetPrimary()};
11821184
if (!addr.IsValid()) {
11831185
return state.Invalid(TxValidationResult::TX_BAD_SPECIAL, "bad-protx-ipaddr");
11841186
}
@@ -1235,8 +1237,8 @@ static bool CheckPlatformFields(const ProTx& proTx, TxValidationState& state)
12351237
return state.Invalid(TxValidationResult::TX_BAD_SPECIAL, "bad-protx-platform-http-port");
12361238
}
12371239

1238-
if (proTx.platformP2PPort == proTx.platformHTTPPort || proTx.platformP2PPort == proTx.netInfo.m_addr.GetPort() ||
1239-
proTx.platformHTTPPort == proTx.netInfo.m_addr.GetPort()) {
1240+
if (proTx.platformP2PPort == proTx.platformHTTPPort || proTx.platformP2PPort == proTx.netInfo.GetPrimary().GetPort() ||
1241+
proTx.platformHTTPPort == proTx.netInfo.GetPrimary().GetPort()) {
12401242
return state.Invalid(TxValidationResult::TX_BAD_SPECIAL, "bad-protx-platform-dup-ports");
12411243
}
12421244

@@ -1301,7 +1303,7 @@ bool CheckProRegTx(CDeterministicMNManager& dmnman, const CTransaction& tx, gsl:
13011303

13021304
// It's allowed to set addr to 0, which will put the MN into PoSe-banned state and require a ProUpServTx to be issues later
13031305
// If any of both is set, it must be valid however
1304-
if (opt_ptx->netInfo.m_addr != CService() && !CheckService(*opt_ptx, state)) {
1306+
if (opt_ptx->netInfo.GetPrimary() != CService() && !CheckService(*opt_ptx, state)) {
13051307
// pass the state returned by the function above
13061308
return false;
13071309
}

src/evo/dmnstate.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,15 @@ std::string CDeterministicMNState::ToString() const
3131
"operatorPayoutAddress=%s)",
3232
nVersion, nRegisteredHeight, nLastPaidHeight, nPoSePenalty, nPoSeRevivedHeight, nPoSeBanHeight,
3333
nRevocationReason, EncodeDestination(PKHash(keyIDOwner)), pubKeyOperator.ToString(),
34-
EncodeDestination(PKHash(keyIDVoting)), netInfo.m_addr.ToStringAddrPort(), payoutAddress,
34+
EncodeDestination(PKHash(keyIDVoting)), netInfo.GetPrimary().ToStringAddrPort(), payoutAddress,
3535
operatorPayoutAddress);
3636
}
3737

3838
UniValue CDeterministicMNState::ToJson(MnType nType) const
3939
{
4040
UniValue obj(UniValue::VOBJ);
4141
obj.pushKV("version", nVersion);
42-
obj.pushKV("service", netInfo.m_addr.ToStringAddrPort());
42+
obj.pushKV("service", netInfo.GetPrimary().ToStringAddrPort());
4343
obj.pushKV("registeredHeight", nRegisteredHeight);
4444
obj.pushKV("lastPaidHeight", nLastPaidHeight);
4545
obj.pushKV("consecutivePayments", nConsecutivePayments);
@@ -73,7 +73,7 @@ UniValue CDeterministicMNStateDiff::ToJson(MnType nType) const
7373
obj.pushKV("version", state.nVersion);
7474
}
7575
if (fields & Field_netInfo) {
76-
obj.pushKV("service", state.netInfo.m_addr.ToStringAddrPort());
76+
obj.pushKV("service", state.netInfo.GetPrimary().ToStringAddrPort());
7777
}
7878
if (fields & Field_nRegisteredHeight) {
7979
obj.pushKV("registeredHeight", state.nRegisteredHeight);

src/evo/netinfo.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ class MnNetInfo
2626
{
2727
READWRITE(obj.m_addr);
2828
}
29+
30+
const CService& GetPrimary() const { return m_addr; }
2931
};
3032

3133
#endif // BITCOIN_EVO_NETINFO_H

src/evo/providertx.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,9 @@ std::string CProRegTx::ToString() const
9090
return strprintf("CProRegTx(nVersion=%d, nType=%d, collateralOutpoint=%s, addr=%s, nOperatorReward=%f, "
9191
"ownerAddress=%s, pubKeyOperator=%s, votingAddress=%s, scriptPayout=%s, platformNodeID=%s, "
9292
"platformP2PPort=%d, platformHTTPPort=%d)",
93-
nVersion, ToUnderlying(nType), collateralOutpoint.ToStringShort(), netInfo.m_addr.ToStringAddrPort(),
94-
(double)nOperatorReward / 100, EncodeDestination(PKHash(keyIDOwner)), pubKeyOperator.ToString(),
93+
nVersion, ToUnderlying(nType), collateralOutpoint.ToStringShort(),
94+
netInfo.GetPrimary().ToStringAddrPort(), (double)nOperatorReward / 100,
95+
EncodeDestination(PKHash(keyIDOwner)), pubKeyOperator.ToString(),
9596
EncodeDestination(PKHash(keyIDVoting)), payee, platformNodeID.ToString(), platformP2PPort,
9697
platformHTTPPort);
9798
}
@@ -118,8 +119,8 @@ std::string CProUpServTx::ToString() const
118119

119120
return strprintf("CProUpServTx(nVersion=%d, nType=%d, proTxHash=%s, addr=%s, operatorPayoutAddress=%s, "
120121
"platformNodeID=%s, platformP2PPort=%d, platformHTTPPort=%d)",
121-
nVersion, ToUnderlying(nType), proTxHash.ToString(), netInfo.m_addr.ToStringAddrPort(), payee,
122-
platformNodeID.ToString(), platformP2PPort, platformHTTPPort);
122+
nVersion, ToUnderlying(nType), proTxHash.ToString(), netInfo.GetPrimary().ToStringAddrPort(),
123+
payee, platformNodeID.ToString(), platformP2PPort, platformHTTPPort);
123124
}
124125

125126
bool CProUpRegTx::IsTriviallyValid(bool is_basic_scheme_active, TxValidationState& state) const

src/evo/simplifiedmns.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,9 @@ std::string CSimplifiedMNListEntry::ToString() const
6666
"pubKeyOperator=%s, votingAddress=%s, isValid=%d, payoutAddress=%s, operatorPayoutAddress=%s, "
6767
"platformHTTPPort=%d, platformNodeID=%s)",
6868
nVersion, ToUnderlying(nType), proRegTxHash.ToString(), confirmedHash.ToString(),
69-
netInfo.m_addr.ToStringAddrPort(), pubKeyOperator.ToString(), EncodeDestination(PKHash(keyIDVoting)),
70-
isValid, payoutAddress, operatorPayoutAddress, platformHTTPPort, platformNodeID.ToString());
69+
netInfo.GetPrimary().ToStringAddrPort(), pubKeyOperator.ToString(),
70+
EncodeDestination(PKHash(keyIDVoting)), isValid, payoutAddress, operatorPayoutAddress,
71+
platformHTTPPort, platformNodeID.ToString());
7172
}
7273

7374
UniValue CSimplifiedMNListEntry::ToJson(bool extended) const
@@ -77,7 +78,7 @@ UniValue CSimplifiedMNListEntry::ToJson(bool extended) const
7778
obj.pushKV("nType", ToUnderlying(nType));
7879
obj.pushKV("proRegTxHash", proRegTxHash.ToString());
7980
obj.pushKV("confirmedHash", confirmedHash.ToString());
80-
obj.pushKV("service", netInfo.m_addr.ToStringAddrPort());
81+
obj.pushKV("service", netInfo.GetPrimary().ToStringAddrPort());
8182
obj.pushKV("pubKeyOperator", pubKeyOperator.ToString());
8283
obj.pushKV("votingAddress", EncodeDestination(PKHash(keyIDVoting)));
8384
obj.pushKV("isValid", isValid);

src/llmq/utils.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -823,7 +823,8 @@ bool EnsureQuorumConnections(const Consensus::LLMQParams& llmqParams, CConnman&
823823
if (!dmn) {
824824
debugMsg += strprintf(" %s (not in valid MN set anymore)\n", c.ToString());
825825
} else {
826-
debugMsg += strprintf(" %s (%s)\n", c.ToString(), dmn->pdmnState->netInfo.m_addr.ToStringAddrPort());
826+
debugMsg += strprintf(" %s (%s)\n", c.ToString(),
827+
dmn->pdmnState->netInfo.GetPrimary().ToStringAddrPort());
827828
}
828829
}
829830
LogPrint(BCLog::NET_NETCONN, debugMsg.c_str()); /* Continued */
@@ -871,7 +872,8 @@ void AddQuorumProbeConnections(const Consensus::LLMQParams& llmqParams, CConnman
871872
if (!dmn) {
872873
debugMsg += strprintf(" %s (not in valid MN set anymore)\n", c.ToString());
873874
} else {
874-
debugMsg += strprintf(" %s (%s)\n", c.ToString(), dmn->pdmnState->netInfo.m_addr.ToStringAddrPort());
875+
debugMsg += strprintf(" %s (%s)\n", c.ToString(),
876+
dmn->pdmnState->netInfo.GetPrimary().ToStringAddrPort());
875877
}
876878
}
877879
LogPrint(BCLog::NET_NETCONN, debugMsg.c_str()); /* Continued */

src/masternode/node.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ void CActiveMasternodeManager::InitInternal(const CBlockIndex* pindex)
146146

147147
LogPrintf("CActiveMasternodeManager::Init -- proTxHash=%s, proTx=%s\n", dmn->proTxHash.ToString(), dmn->ToString());
148148

149-
if (m_info.service != dmn->pdmnState->netInfo.m_addr) {
149+
if (m_info.service != dmn->pdmnState->netInfo.GetPrimary()) {
150150
m_state = MasternodeState::SOME_ERROR;
151151
m_error = "Local address does not match the address from ProTx";
152152
LogPrintf("CActiveMasternodeManager::Init -- ERROR: %s\n", m_error);
@@ -201,7 +201,7 @@ void CActiveMasternodeManager::UpdatedBlockTip(const CBlockIndex* pindexNew, con
201201
// MN operator key changed or revoked
202202
return reset(MasternodeState::OPERATOR_KEY_CHANGED);
203203
}
204-
if (newDmn->pdmnState->netInfo.m_addr != oldDmn->pdmnState->netInfo.m_addr) {
204+
if (newDmn->pdmnState->netInfo.GetPrimary() != oldDmn->pdmnState->netInfo.GetPrimary()) {
205205
// MN IP changed
206206
return reset(MasternodeState::PROTX_IP_CHANGED);
207207
}

src/masternode/utils.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,9 @@ void CMasternodeUtils::DoMaintenance(CConnman& connman, CDeterministicMNManager&
7777
}
7878

7979
#ifdef ENABLE_WALLET
80-
bool fFound = ranges::any_of(vecDmns,
81-
[&pnode](const auto& dmn) { return pnode->addr == dmn->pdmnState->netInfo.m_addr; });
80+
bool fFound = ranges::any_of(vecDmns, [&pnode](const auto& dmn) {
81+
return pnode->addr == dmn->pdmnState->netInfo.GetPrimary();
82+
});
8283
if (fFound) return; // do NOT disconnect mixing masternodes
8384
#endif // ENABLE_WALLET
8485
if (fLogIPs) {

0 commit comments

Comments
 (0)