From b9310be7bc7a90d8b3cc796eee76bc922bd3076a Mon Sep 17 00:00:00 2001 From: UdjinM6 Date: Sun, 16 Nov 2025 19:09:42 +0300 Subject: [PATCH] fix: adjust condition to detect suitable pending masternodes --- src/net.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/net.cpp b/src/net.cpp index 19f86ab39052..0fbe73b05648 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -3454,13 +3454,12 @@ void CConnman::ThreadOpenMasternodeConnections(CDeterministicMNManager& dmnman, // Check if we should connect to this masternode // We already hold m_nodes_mutex here, so check m_masternode_connection directly if (dmn && !connectedNodes.count(dmn->pdmnState->netInfo->GetPrimary())) { - if (const CNode* pnode = FindNode(dmn->pdmnState->netInfo->GetPrimary())) { - if (!pnode->m_masternode_connection) { - LogPrint(BCLog::NET_NETCONN, "CConnman::%s -- opening pending masternode connection to %s, service=%s\n", - _func_, dmn->proTxHash.ToString(), - dmn->pdmnState->netInfo->GetPrimary().ToStringAddrPort()); - return dmn; - } + const CNode* pnode = FindNode(dmn->pdmnState->netInfo->GetPrimary(), /*fExcludeDisconnecting=*/false); + if (pnode == nullptr || (!pnode->m_masternode_connection && !pnode->fDisconnect)) { + LogPrint(BCLog::NET_NETCONN, "CConnman::%s -- opening pending masternode connection to %s, service=%s\n", + _func_, dmn->proTxHash.ToString(), + dmn->pdmnState->netInfo->GetPrimary().ToStringAddrPort()); + return dmn; } } }