|
|
@ -1682,8 +1682,7 @@ void CConnman::ProcessOneShot() |
|
|
|
CAddress addr; |
|
|
|
CAddress addr; |
|
|
|
CSemaphoreGrant grant(*semOutbound, true); |
|
|
|
CSemaphoreGrant grant(*semOutbound, true); |
|
|
|
if (grant) { |
|
|
|
if (grant) { |
|
|
|
if (!OpenNetworkConnection(addr, false, &grant, strDest.c_str(), true)) |
|
|
|
OpenNetworkConnection(addr, false, &grant, strDest.c_str(), true); |
|
|
|
AddOneShot(strDest); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -1953,29 +1952,29 @@ void CConnman::ThreadOpenAddedConnections() |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// if successful, this moves the passed grant to the constructed node
|
|
|
|
// if successful, this moves the passed grant to the constructed node
|
|
|
|
bool CConnman::OpenNetworkConnection(const CAddress& addrConnect, bool fCountFailure, CSemaphoreGrant *grantOutbound, const char *pszDest, bool fOneShot, bool fFeeler, bool manual_connection) |
|
|
|
void CConnman::OpenNetworkConnection(const CAddress& addrConnect, bool fCountFailure, CSemaphoreGrant *grantOutbound, const char *pszDest, bool fOneShot, bool fFeeler, bool manual_connection) |
|
|
|
{ |
|
|
|
{ |
|
|
|
//
|
|
|
|
//
|
|
|
|
// Initiate outbound network connection
|
|
|
|
// Initiate outbound network connection
|
|
|
|
//
|
|
|
|
//
|
|
|
|
if (interruptNet) { |
|
|
|
if (interruptNet) { |
|
|
|
return false; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
if (!fNetworkActive) { |
|
|
|
if (!fNetworkActive) { |
|
|
|
return false; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
if (!pszDest) { |
|
|
|
if (!pszDest) { |
|
|
|
if (IsLocal(addrConnect) || |
|
|
|
if (IsLocal(addrConnect) || |
|
|
|
FindNode((CNetAddr)addrConnect) || IsBanned(addrConnect) || |
|
|
|
FindNode((CNetAddr)addrConnect) || IsBanned(addrConnect) || |
|
|
|
FindNode(addrConnect.ToStringIPPort())) |
|
|
|
FindNode(addrConnect.ToStringIPPort())) |
|
|
|
return false; |
|
|
|
return; |
|
|
|
} else if (FindNode(std::string(pszDest))) |
|
|
|
} else if (FindNode(std::string(pszDest))) |
|
|
|
return false; |
|
|
|
return; |
|
|
|
|
|
|
|
|
|
|
|
CNode* pnode = ConnectNode(addrConnect, pszDest, fCountFailure); |
|
|
|
CNode* pnode = ConnectNode(addrConnect, pszDest, fCountFailure); |
|
|
|
|
|
|
|
|
|
|
|
if (!pnode) |
|
|
|
if (!pnode) |
|
|
|
return false; |
|
|
|
return; |
|
|
|
if (grantOutbound) |
|
|
|
if (grantOutbound) |
|
|
|
grantOutbound->MoveTo(pnode->grantOutbound); |
|
|
|
grantOutbound->MoveTo(pnode->grantOutbound); |
|
|
|
if (fOneShot) |
|
|
|
if (fOneShot) |
|
|
@ -1990,8 +1989,6 @@ bool CConnman::OpenNetworkConnection(const CAddress& addrConnect, bool fCountFai |
|
|
|
LOCK(cs_vNodes); |
|
|
|
LOCK(cs_vNodes); |
|
|
|
vNodes.push_back(pnode); |
|
|
|
vNodes.push_back(pnode); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void CConnman::ThreadMessageHandler() |
|
|
|
void CConnman::ThreadMessageHandler() |
|
|
|