diff options
author | Pieter Wuille <pieter.wuille@gmail.com> | 2013-04-08 08:21:06 -0700 |
---|---|---|
committer | Pieter Wuille <pieter.wuille@gmail.com> | 2013-04-08 08:21:06 -0700 |
commit | b7b774d82f536f5e080c07847e638d5c801f74af (patch) | |
tree | 29588aea59897c9076fe0cad0539cb99e66ca639 | |
parent | 1829134afec6058d2d7d713b5b280a2d4605bb2e (diff) | |
parent | cedaa714462871213472019545b8e862dacdac91 (diff) |
Merge pull request #2419 from sipa/noreltime
Drop release times for CNode
-rw-r--r-- | src/net.cpp | 14 | ||||
-rw-r--r-- | src/net.h | 17 | ||||
-rw-r--r-- | src/rpcnet.cpp | 1 |
3 files changed, 9 insertions, 23 deletions
diff --git a/src/net.cpp b/src/net.cpp index 0defa96e40..910baf6b56 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -449,7 +449,7 @@ CNode* FindNode(const CService& addr) return NULL; } -CNode* ConnectNode(CAddress addrConnect, const char *pszDest, int64 nTimeout) +CNode* ConnectNode(CAddress addrConnect, const char *pszDest) { if (pszDest == NULL) { if (IsLocal(addrConnect)) @@ -459,10 +459,7 @@ CNode* ConnectNode(CAddress addrConnect, const char *pszDest, int64 nTimeout) CNode* pnode = FindNode((CService)addrConnect); if (pnode) { - if (nTimeout != 0) - pnode->AddRef(nTimeout); - else - pnode->AddRef(); + pnode->AddRef(); return pnode; } } @@ -494,10 +491,7 @@ CNode* ConnectNode(CAddress addrConnect, const char *pszDest, int64 nTimeout) // Add node CNode* pnode = new CNode(hSocket, addrConnect, pszDest ? pszDest : "", false); - if (nTimeout != 0) - pnode->AddRef(nTimeout); - else - pnode->AddRef(); + pnode->AddRef(); { LOCK(cs_vNodes); @@ -611,7 +605,6 @@ void CNode::copyStats(CNodeStats &stats) X(nVersion); X(strSubVer); X(fInbound); - X(nReleaseTime); X(nStartingHeight); X(nMisbehavior); } @@ -769,7 +762,6 @@ void ThreadSocketHandler() pnode->Cleanup(); // hold in disconnected pool until all refs are released - pnode->nReleaseTime = max(pnode->nReleaseTime, GetTime() + 15 * 60); if (pnode->fNetworkNode || pnode->fInbound) pnode->Release(); vNodesDisconnected.push_back(pnode); @@ -37,7 +37,7 @@ bool GetMyExternalIP(CNetAddr& ipRet); void AddressCurrentlyConnected(const CService& addr); CNode* FindNode(const CNetAddr& ip); CNode* FindNode(const CService& ip); -CNode* ConnectNode(CAddress addrConnect, const char *strDest = NULL, int64 nTimeout=0); +CNode* ConnectNode(CAddress addrConnect, const char *strDest = NULL); void MapPort(bool fUseUPnP); unsigned short GetListenPort(); bool BindListenPort(const CService &bindAddr, std::string& strError=REF(std::string())); @@ -99,7 +99,6 @@ public: int nVersion; std::string strSubVer; bool fInbound; - int64 nReleaseTime; int nStartingHeight; int nMisbehavior; }; @@ -187,8 +186,8 @@ public: CSemaphoreGrant grantOutbound; CCriticalSection cs_filter; CBloomFilter* pfilter; -protected: int nRefCount; +protected: // Denial-of-service detection/prevention // Key is IP address, value is banned-until-time @@ -197,7 +196,6 @@ protected: int nMisbehavior; public: - int64 nReleaseTime; uint256 hashContinue; CBlockIndex* pindexLastGetBlocksBegin; uint256 hashLastGetBlocksEnd; @@ -235,7 +233,6 @@ public: fSuccessfullyConnected = false; fDisconnect = false; nRefCount = 0; - nReleaseTime = 0; nSendSize = 0; nSendOffset = 0; hashContinue = 0; @@ -272,7 +269,8 @@ public: int GetRefCount() { - return std::max(nRefCount, 0) + (GetTime() < nReleaseTime ? 1 : 0); + assert(nRefCount >= 0); + return nRefCount; } // requires LOCK(cs_vRecvMsg) @@ -295,12 +293,9 @@ public: msg.SetVersion(nVersionIn); } - CNode* AddRef(int64 nTimeout=0) + CNode* AddRef() { - if (nTimeout != 0) - nReleaseTime = std::max(nReleaseTime, GetTime() + nTimeout); - else - nRefCount++; + nRefCount++; return this; } diff --git a/src/rpcnet.cpp b/src/rpcnet.cpp index 4db3be9319..e37b3009dd 100644 --- a/src/rpcnet.cpp +++ b/src/rpcnet.cpp @@ -55,7 +55,6 @@ Value getpeerinfo(const Array& params, bool fHelp) obj.push_back(Pair("version", stats.nVersion)); obj.push_back(Pair("subver", stats.strSubVer)); obj.push_back(Pair("inbound", stats.fInbound)); - obj.push_back(Pair("releasetime", (boost::int64_t)stats.nReleaseTime)); obj.push_back(Pair("startingheight", stats.nStartingHeight)); obj.push_back(Pair("banscore", stats.nMisbehavior)); |