Skip to content

Commit

Permalink
Don't disconnect masternode probes for a few seconds (dashpay#3449)
Browse files Browse the repository at this point in the history
* Refactor CMasternodeUtils::ProcessMasternodeConnections to be more readable

* Don't disconnect masternode probes for a few seconds
  • Loading branch information
codablock authored Apr 21, 2020
1 parent 608aed3 commit 96faa81
Showing 1 changed file with 21 additions and 14 deletions.
35 changes: 21 additions & 14 deletions src/masternode/masternode-utils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,24 +39,31 @@ void CMasternodeUtils::ProcessMasternodeConnections(CConnman& connman)
}

connman.ForEachNode(CConnman::AllNodes, [&](CNode* pnode) {
if (!pnode->fInbound && pnode->fMasternode && !connman.IsMasternodeQuorumNode(pnode)) {
// we're only disconnecting fMasternode connections
if (!pnode->fMasternode) return;
// we're only disconnecting outbound connections
if (pnode->fInbound) return;
// we're not disconnecting LLMQ connections
if (connman.IsMasternodeQuorumNode(pnode)) return;
// we're not disconnecting masternode probes for at least a few seconds
if (pnode->fMasternodeProbe && GetSystemTimeInSeconds() - pnode->nTimeConnected < 5) return;

#ifdef ENABLE_WALLET
bool fFound = false;
for (const auto& dmn : vecDmns) {
if (pnode->addr == dmn->pdmnState->addr) {
fFound = true;
break;
}
bool fFound = false;
for (const auto& dmn : vecDmns) {
if (pnode->addr == dmn->pdmnState->addr) {
fFound = true;
break;
}
if (fFound) return; // do NOT disconnect mixing masternodes
}
if (fFound) return; // do NOT disconnect mixing masternodes
#endif // ENABLE_WALLET
if (fLogIPs) {
LogPrintf("Closing Masternode connection: peer=%d, addr=%s\n", pnode->GetId(), pnode->addr.ToString());
} else {
LogPrintf("Closing Masternode connection: peer=%d\n", pnode->GetId());
}
pnode->fDisconnect = true;
if (fLogIPs) {
LogPrintf("Closing Masternode connection: peer=%d, addr=%s\n", pnode->GetId(), pnode->addr.ToString());
} else {
LogPrintf("Closing Masternode connection: peer=%d\n", pnode->GetId());
}
pnode->fDisconnect = true;
});
}

Expand Down

0 comments on commit 96faa81

Please sign in to comment.