}
extern void disable_tcp_nagle(int fd);
+extern void enable_keepalive(int fd);
#define lstat stat /* no symlinks on Win32 */
setsockopt( fd, IPPROTO_TCP, TCP_NODELAY, (void*)&on, sizeof(on) );
}
+static __inline__ void enable_keepalive(int fd)
+{
+ int optval;
+ socklen_t optlen = sizeof(optval);
+
+ /* Set the option active */
+ optval = 1;
+ optlen = sizeof(optval);
+ setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, &optval, optlen);
+ optval = 2;
+ setsockopt(fd, SOL_TCP, TCP_KEEPCNT, &optval, optlen);
+ optval = 2;
+ setsockopt(fd, SOL_TCP, TCP_KEEPIDLE, &optval, optlen);
+ optval = 2;
+ setsockopt(fd, SOL_TCP, TCP_KEEPINTVL, &optval, optlen);
+}
static __inline__ int unix_socketpair( int d, int type, int protocol, int sv[2] )
{