diff --git a/src/session_client.c b/src/session_client.c
index 84f44c4..4d196ee 100644
--- a/src/session_client.c
+++ b/src/session_client.c
@@ -935,18 +935,7 @@
         /* make the socket non-blocking */
         if (((flags = fcntl(sock, F_GETFL)) == -1) || (fcntl(sock, F_SETFL, flags | O_NONBLOCK) == -1)) {
             ERR("Fcntl failed (%s).", strerror(errno));
-            close(sock);
-            freeaddrinfo(res_list);
-            return -1;
-        }
-
-        /* enable keep-alive */
-        i = 1;
-        if (setsockopt(sock, SOL_SOCKET, SO_KEEPALIVE, &i, sizeof i) == -1) {
-            ERR("Setsockopt failed (%s).", strerror(errno));
-            close(sock);
-            freeaddrinfo(res_list);
-            return -1;
+            goto error;
         }
 
         /* we're done, network connection established */
@@ -959,6 +948,13 @@
     freeaddrinfo(res_list);
 
     return sock;
+
+error:
+    if (sock > -1) {
+        close(sock);
+    }
+    freeaddrinfo(res_list);
+    return -1;
 }
 
 static NC_MSG_TYPE
diff --git a/src/session_server.c b/src/session_server.c
index 2f9aa5d..94156c0 100644
--- a/src/session_server.c
+++ b/src/session_server.c
@@ -21,6 +21,7 @@
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <netinet/in.h>
+#include <netinet/tcp.h>
 #include <arpa/inet.h>
 #include <unistd.h>
 #include <fcntl.h>
@@ -163,8 +164,7 @@
 int
 nc_sock_listen(const char *address, uint16_t port)
 {
-    const int optVal = 1;
-    const socklen_t optLen = sizeof(optVal);
+    int opt;
     int is_ipv4, sock;
     struct sockaddr_storage saddr;
 
@@ -184,8 +184,14 @@
         goto fail;
     }
 
-    if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (void *)&optVal, optLen) == -1) {
-        ERR("Could not set socket SO_REUSEADDR socket option (%s).", strerror(errno));
+    opt = 1;
+    if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof opt) == -1) {
+        ERR("Could not set SO_REUSEADDR socket option (%s).", strerror(errno));
+        goto fail;
+    }
+    opt = 1;
+    if (setsockopt(sock, SOL_SOCKET, SO_KEEPALIVE, &opt, sizeof opt) == -1) {
+        ERR("Could not set SO_KEEPALIVE option (%s).", strerror(errno));
         goto fail;
     }
 
@@ -332,7 +338,19 @@
 
     /* enable keep-alive */
     flags = 1;
-    if (setsockopt(ret, SOL_SOCKET, SO_KEEPALIVE, &flags, sizeof flags) == -1) {
+    if (setsockopt(ret, IPPROTO_TCP, TCP_KEEPIDLE, &flags, sizeof flags) == -1) {
+        ERR("Setsockopt failed (%s).", strerror(errno));
+        close(ret);
+        return -1;
+    }
+    flags = 5;
+    if (setsockopt(ret, IPPROTO_TCP, TCP_KEEPINTVL, &flags, sizeof flags) == -1) {
+        ERR("Setsockopt failed (%s).", strerror(errno));
+        close(ret);
+        return -1;
+    }
+    flags = 10;
+    if (setsockopt(ret, IPPROTO_TCP, TCP_KEEPCNT, &flags, sizeof flags) == -1) {
         ERR("Setsockopt failed (%s).", strerror(errno));
         close(ret);
         return -1;
