diff options
author | Wladimir J. van der Laan <laanwj@gmail.com> | 2014-09-08 13:49:56 +0200 |
---|---|---|
committer | Wladimir J. van der Laan <laanwj@gmail.com> | 2014-09-10 11:33:13 +0200 |
commit | 6050ab685553c7312ef105d2c4a5230c3fcf4002 (patch) | |
tree | ff96280109f4200733a4bbfc81278cad4ff5367f /src/net.cpp | |
parent | 6a8d15cc16875a2dce3d944b46eb21b3f72bb33b (diff) |
netbase: Make SOCKS5 negotiation interruptible
Avoids that SOCKS5 negotiation will hold up the shutdown process.
- Sockets can stay in non-blocking mode, no need to switch it on/off
anymore
- Adds a timeout (20 seconds) on SOCK5 negotiation. This should be
enough for even Tor to get a connection to a hidden service, and
avoids blocking the opencon thread indefinitely on a hanging proxy.
Fixes #2954.
Diffstat (limited to 'src/net.cpp')
-rw-r--r-- | src/net.cpp | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/src/net.cpp b/src/net.cpp index 633a3a34e7..4c9ff4ebed 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -488,10 +488,6 @@ CNode* ConnectNode(CAddress addrConnect, const char *pszDest) { addrman.Attempt(addrConnect); - // Set to non-blocking - if (!SetSocketNonBlocking(hSocket, true)) - LogPrintf("ConnectNode: Setting socket to non-blocking failed, error %s\n", NetworkErrorString(WSAGetLastError())); - // Add node CNode* pnode = new CNode(hSocket, addrConnect, pszDest ? pszDest : "", false); pnode->AddRef(); |