aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPieter Wuille <pieter.wuille@gmail.com>2013-04-08 08:21:06 -0700
committerPieter Wuille <pieter.wuille@gmail.com>2013-04-08 08:21:06 -0700
commitb7b774d82f536f5e080c07847e638d5c801f74af (patch)
tree29588aea59897c9076fe0cad0539cb99e66ca639
parent1829134afec6058d2d7d713b5b280a2d4605bb2e (diff)
parentcedaa714462871213472019545b8e862dacdac91 (diff)
Merge pull request #2419 from sipa/noreltime
Drop release times for CNode
-rw-r--r--src/net.cpp14
-rw-r--r--src/net.h17
-rw-r--r--src/rpcnet.cpp1
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);
diff --git a/src/net.h b/src/net.h
index 30b9ac8663..80773e3f19 100644
--- a/src/net.h
+++ b/src/net.h
@@ -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));