Browse Source

Prevent socket leak in ThreadSocketHandler.

When we are over our outbound limit ThreadSocketHandler would try to
 keep the connection if the peer was addnoded.

This didn't actually work for two reasons: It didn't actually run
 the accept code due to mistaken code flow, and because we have a
 limited number of outbound semaphores it couldn't actually use the
 connection.

Instead it leaked the socket, which might have caused issue #4034.

This patch just takes out the non-functioning white-listing for now.
0.10
Gregory Maxwell 11 years ago
parent
commit
d20791b0e5
  1. 4
      src/net.cpp

4
src/net.cpp

@ -946,12 +946,8 @@ void ThreadSocketHandler()
} }
else if (nInbound >= nMaxConnections - MAX_OUTBOUND_CONNECTIONS) else if (nInbound >= nMaxConnections - MAX_OUTBOUND_CONNECTIONS)
{ {
{
LOCK(cs_setservAddNodeAddresses);
if (!setservAddNodeAddresses.count(addr))
closesocket(hSocket); closesocket(hSocket);
} }
}
else if (CNode::IsBanned(addr)) else if (CNode::IsBanned(addr))
{ {
LogPrintf("connection from %s dropped (banned)\n", addr.ToString()); LogPrintf("connection from %s dropped (banned)\n", addr.ToString());

Loading…
Cancel
Save