|
|
@ -74,7 +74,6 @@ bool fRelayTxes = true; |
|
|
|
CCriticalSection cs_mapLocalHost; |
|
|
|
CCriticalSection cs_mapLocalHost; |
|
|
|
std::map<CNetAddr, LocalServiceInfo> mapLocalHost; |
|
|
|
std::map<CNetAddr, LocalServiceInfo> mapLocalHost; |
|
|
|
static bool vfLimited[NET_MAX] = {}; |
|
|
|
static bool vfLimited[NET_MAX] = {}; |
|
|
|
static CNode* pnodeLocalHost = NULL; |
|
|
|
|
|
|
|
std::string strSubVersion; |
|
|
|
std::string strSubVersion; |
|
|
|
|
|
|
|
|
|
|
|
limitedmap<uint256, int64_t> mapAlreadyAskedFor(MAX_INV_SZ); |
|
|
|
limitedmap<uint256, int64_t> mapAlreadyAskedFor(MAX_INV_SZ); |
|
|
@ -1067,8 +1066,7 @@ void CConnman::ThreadSocketHandler() |
|
|
|
pnode->CloseSocketDisconnect(); |
|
|
|
pnode->CloseSocketDisconnect(); |
|
|
|
|
|
|
|
|
|
|
|
// hold in disconnected pool until all refs are released
|
|
|
|
// hold in disconnected pool until all refs are released
|
|
|
|
if (pnode->fNetworkNode || pnode->fInbound) |
|
|
|
pnode->Release(); |
|
|
|
pnode->Release(); |
|
|
|
|
|
|
|
vNodesDisconnected.push_back(pnode); |
|
|
|
vNodesDisconnected.push_back(pnode); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -1813,7 +1811,6 @@ bool CConnman::OpenNetworkConnection(const CAddress& addrConnect, bool fCountFai |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
if (grantOutbound) |
|
|
|
if (grantOutbound) |
|
|
|
grantOutbound->MoveTo(pnode->grantOutbound); |
|
|
|
grantOutbound->MoveTo(pnode->grantOutbound); |
|
|
|
pnode->fNetworkNode = true; |
|
|
|
|
|
|
|
if (fOneShot) |
|
|
|
if (fOneShot) |
|
|
|
pnode->fOneShot = true; |
|
|
|
pnode->fOneShot = true; |
|
|
|
if (fFeeler) |
|
|
|
if (fFeeler) |
|
|
@ -2144,17 +2141,6 @@ bool CConnman::Start(boost::thread_group& threadGroup, CScheduler& scheduler, st |
|
|
|
semOutbound = new CSemaphore(std::min((nMaxOutbound + nMaxFeeler), nMaxConnections)); |
|
|
|
semOutbound = new CSemaphore(std::min((nMaxOutbound + nMaxFeeler), nMaxConnections)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (pnodeLocalHost == NULL) { |
|
|
|
|
|
|
|
CNetAddr local; |
|
|
|
|
|
|
|
LookupHost("127.0.0.1", local, false); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
NodeId id = GetNewNodeId(); |
|
|
|
|
|
|
|
uint64_t nonce = GetDeterministicRandomizer(RANDOMIZER_ID_LOCALHOSTNONCE).Write(id).Finalize(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
pnodeLocalHost = new CNode(id, nLocalServices, GetBestHeight(), INVALID_SOCKET, CAddress(CService(local, 0), nLocalServices), 0, nonce); |
|
|
|
|
|
|
|
GetNodeSignals().InitializeNode(pnodeLocalHost, *this); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// Start threads
|
|
|
|
// Start threads
|
|
|
|
//
|
|
|
|
//
|
|
|
@ -2232,9 +2218,6 @@ void CConnman::Stop() |
|
|
|
vhListenSocket.clear(); |
|
|
|
vhListenSocket.clear(); |
|
|
|
delete semOutbound; |
|
|
|
delete semOutbound; |
|
|
|
semOutbound = NULL; |
|
|
|
semOutbound = NULL; |
|
|
|
if(pnodeLocalHost) |
|
|
|
|
|
|
|
DeleteNode(pnodeLocalHost); |
|
|
|
|
|
|
|
pnodeLocalHost = NULL; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void CConnman::DeleteNode(CNode* pnode) |
|
|
|
void CConnman::DeleteNode(CNode* pnode) |
|
|
@ -2536,7 +2519,6 @@ CNode::CNode(NodeId idIn, ServiceFlags nLocalServicesIn, int nMyStartingHeightIn |
|
|
|
fOneShot = false; |
|
|
|
fOneShot = false; |
|
|
|
fClient = false; // set by version message
|
|
|
|
fClient = false; // set by version message
|
|
|
|
fFeeler = false; |
|
|
|
fFeeler = false; |
|
|
|
fNetworkNode = false; |
|
|
|
|
|
|
|
fSuccessfullyConnected = false; |
|
|
|
fSuccessfullyConnected = false; |
|
|
|
fDisconnect = false; |
|
|
|
fDisconnect = false; |
|
|
|
nRefCount = 0; |
|
|
|
nRefCount = 0; |
|
|
|