mirror of
https://github.com/kvazar-network/kevacoin.git
synced 2025-01-13 00:28:03 +00:00
net: only disconnect if fDisconnect has been set
These conditions are problematic to check without locking, and we shouldn't be relying on the refcount to disconnect.
This commit is contained in:
parent
5b4a8ac6d6
commit
f6315e07f9
@ -1051,8 +1051,7 @@ void CConnman::ThreadSocketHandler()
|
|||||||
std::vector<CNode*> vNodesCopy = vNodes;
|
std::vector<CNode*> vNodesCopy = vNodes;
|
||||||
BOOST_FOREACH(CNode* pnode, vNodesCopy)
|
BOOST_FOREACH(CNode* pnode, vNodesCopy)
|
||||||
{
|
{
|
||||||
if (pnode->fDisconnect ||
|
if (pnode->fDisconnect)
|
||||||
(pnode->GetRefCount() <= 0 && pnode->vRecvMsg.empty() && pnode->nSendSize == 0))
|
|
||||||
{
|
{
|
||||||
// remove from vNodes
|
// remove from vNodes
|
||||||
vNodes.erase(remove(vNodes.begin(), vNodes.end(), pnode), vNodes.end());
|
vNodes.erase(remove(vNodes.begin(), vNodes.end(), pnode), vNodes.end());
|
||||||
|
Loading…
Reference in New Issue
Block a user