diff options
Diffstat (limited to 'src/connection.cpp')
-rw-r--r-- | src/connection.cpp | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/src/connection.cpp b/src/connection.cpp index 61c3c5bfe..bb3e8f75b 100644 --- a/src/connection.cpp +++ b/src/connection.cpp @@ -42,6 +42,18 @@ bool connection::CreateListener(char* host, int p) return false; } + setsockopt(fd,SOL_SOCKET,SO_REUSEADDR,(const char*)&on,sizeof(on)); + linger.l_onoff = 1; + linger.l_linger = 0; + setsockopt(fd,SOL_SOCKET,SO_LINGER,(const char*)&linger,sizeof(linger)); + + // attempt to increase socket sendq and recvq as high as its possible + // to get them on linux. + int sendbuf = 32768; + int recvbuf = 32768; + setsockopt(fd,SOL_SOCKET,SO_SNDBUF,(const void *)&sendbuf,sizeof(sendbuf)); + setsockopt(fd,SOL_SOCKET,SO_RCVBUF,(const void *)&recvbuf,sizeof(sendbuf)); + memset((void*)&host_address, 0, sizeof(host_address)); host_address.sin_family = AF_INET; @@ -69,18 +81,6 @@ bool connection::CreateListener(char* host, int p) this->port = p; - setsockopt(fd,SOL_SOCKET,SO_REUSEADDR,(const char*)&on,sizeof(on)); - linger.l_onoff = 1; - linger.l_linger = 0; - setsockopt(fd,SOL_SOCKET,SO_LINGER,(const char*)&linger,sizeof(linger)); - - // attempt to increase socket sendq and recvq as high as its possible - // to get them on linux. - int sendbuf = 32768; - int recvbuf = 32768; - setsockopt(fd,SOL_SOCKET,SO_SNDBUF,(const void *)&sendbuf,sizeof(sendbuf)); - setsockopt(fd,SOL_SOCKET,SO_RCVBUF,(const void *)&recvbuf,sizeof(sendbuf)); - listen(this->fd,5); return true; |