Merge pull request #2419 from sipa/noreltime
Drop release times for CNode
This commit is contained in:
commit
b7b774d82f
3 changed files with 9 additions and 23 deletions
14
src/net.cpp
14
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);
|
||||
|
|
17
src/net.h
17
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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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));
|
||||
|
||||
|
|
Loading…
Reference in a new issue