|
|
|
@ -963,6 +963,15 @@ static void AcceptConnection(const ListenSocket& hListenSocket) {
@@ -963,6 +963,15 @@ static void AcceptConnection(const ListenSocket& hListenSocket) {
|
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// According to the internet TCP_NODELAY is not carried into accepted sockets
|
|
|
|
|
// on all platforms. Set it again here just to be sure.
|
|
|
|
|
int set = 1; |
|
|
|
|
#ifdef WIN32 |
|
|
|
|
setsockopt(hSocket, IPPROTO_TCP, TCP_NODELAY, (const char*)&set, sizeof(int)); |
|
|
|
|
#else |
|
|
|
|
setsockopt(hSocket, IPPROTO_TCP, TCP_NODELAY, (void*)&set, sizeof(int)); |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
if (CNode::IsBanned(addr) && !whitelisted) |
|
|
|
|
{ |
|
|
|
|
LogPrintf("connection from %s dropped (banned)\n", addr.ToString()); |
|
|
|
@ -1790,8 +1799,11 @@ bool BindListenPort(const CService &addrBind, string& strError, bool fWhiteliste
@@ -1790,8 +1799,11 @@ bool BindListenPort(const CService &addrBind, string& strError, bool fWhiteliste
|
|
|
|
|
// Allow binding if the port is still in TIME_WAIT state after
|
|
|
|
|
// the program was closed and restarted.
|
|
|
|
|
setsockopt(hListenSocket, SOL_SOCKET, SO_REUSEADDR, (void*)&nOne, sizeof(int)); |
|
|
|
|
// Disable Nagle's algorithm
|
|
|
|
|
setsockopt(hListenSocket, IPPROTO_TCP, TCP_NODELAY, (void*)&nOne, sizeof(int)); |
|
|
|
|
#else |
|
|
|
|
setsockopt(hListenSocket, SOL_SOCKET, SO_REUSEADDR, (const char*)&nOne, sizeof(int)); |
|
|
|
|
setsockopt(hListenSocket, IPPROTO_TCP, TCP_NODELAY, (const char*)&nOne, sizeof(int)); |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
// Set to non-blocking, incoming connections will also inherit this
|
|
|
|
|