Added SO_KEEPALIVE to all socket connections by default.

This commit is contained in:
Thulinma 2017-07-18 12:42:10 +02:00
parent f9a0ec5b78
commit 169830bd15

View file

@ -548,6 +548,9 @@ Socket::Connection::Connection(std::string host, int port, bool nonblock){
flags |= O_NONBLOCK; flags |= O_NONBLOCK;
fcntl(sock, F_SETFL, flags); fcntl(sock, F_SETFL, flags);
} }
int optval = 1;
int optlen = sizeof(optval);
setsockopt(sock, SOL_SOCKET, SO_KEEPALIVE, &optval, optlen);
} }
}// Socket::Connection TCP Contructor }// Socket::Connection TCP Contructor
@ -985,6 +988,11 @@ Socket::Connection Socket::Server::accept(bool nonblock){
flags |= O_NONBLOCK; flags |= O_NONBLOCK;
fcntl(r, F_SETFL, flags); fcntl(r, F_SETFL, flags);
} }
if (r >= 0){
int optval = 1;
int optlen = sizeof(optval);
setsockopt(r, SOL_SOCKET, SO_KEEPALIVE, &optval, optlen);
}
Socket::Connection tmp(r); Socket::Connection tmp(r);
tmp.remoteaddr = tmpaddr; tmp.remoteaddr = tmpaddr;
if (r < 0){ if (r < 0){