diff options
author | Cory Fields <cory-nospam-@coryfields.com> | 2018-02-01 14:04:49 -0500 |
---|---|---|
committer | Cory Fields <cory-nospam-@coryfields.com> | 2018-02-01 14:04:49 -0500 |
commit | 660f5f19ae74cc81b83540fcb95a33ec437834c8 (patch) | |
tree | 752fb4414ab9edc5f09bcf7c385234da1d496e5f /src | |
parent | 84291d18dd69e0baff766d256a3f45f910be55e9 (diff) |
net: don't retry failed oneshot connections forever
Diffstat (limited to 'src')
-rw-r--r-- | src/net.cpp | 17 | ||||
-rw-r--r-- | src/net.h | 2 |
2 files changed, 8 insertions, 11 deletions
diff --git a/src/net.cpp b/src/net.cpp index f407add091..5f4c0eecab 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -1682,8 +1682,7 @@ void CConnman::ProcessOneShot() CAddress addr; CSemaphoreGrant grant(*semOutbound, true); if (grant) { - if (!OpenNetworkConnection(addr, false, &grant, strDest.c_str(), true)) - AddOneShot(strDest); + OpenNetworkConnection(addr, false, &grant, strDest.c_str(), true); } } @@ -1953,29 +1952,29 @@ void CConnman::ThreadOpenAddedConnections() } // 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 // if (interruptNet) { - return false; + return; } if (!fNetworkActive) { - return false; + return; } if (!pszDest) { if (IsLocal(addrConnect) || FindNode((CNetAddr)addrConnect) || IsBanned(addrConnect) || FindNode(addrConnect.ToStringIPPort())) - return false; + return; } else if (FindNode(std::string(pszDest))) - return false; + return; CNode* pnode = ConnectNode(addrConnect, pszDest, fCountFailure); if (!pnode) - return false; + return; if (grantOutbound) grantOutbound->MoveTo(pnode->grantOutbound); if (fOneShot) @@ -1990,8 +1989,6 @@ bool CConnman::OpenNetworkConnection(const CAddress& addrConnect, bool fCountFai LOCK(cs_vNodes); vNodes.push_back(pnode); } - - return true; } void CConnman::ThreadMessageHandler() @@ -177,7 +177,7 @@ public: void Interrupt(); bool GetNetworkActive() const { return fNetworkActive; }; void SetNetworkActive(bool active); - bool OpenNetworkConnection(const CAddress& addrConnect, bool fCountFailure, CSemaphoreGrant *grantOutbound = nullptr, const char *strDest = nullptr, bool fOneShot = false, bool fFeeler = false, bool manual_connection = false); + void OpenNetworkConnection(const CAddress& addrConnect, bool fCountFailure, CSemaphoreGrant *grantOutbound = nullptr, const char *strDest = nullptr, bool fOneShot = false, bool fFeeler = false, bool manual_connection = false); bool CheckIncomingNonce(uint64_t nonce); bool ForNode(NodeId id, std::function<bool(CNode* pnode)> func); |