]> PatchyGit - patchyircd.git/commitdiff
add tcp keepalive
authorEgor <egor@patchysicp.xyz>
Tue, 18 Mar 2025 23:55:05 +0000 (01:55 +0200)
committerEgor <egor@patchysicp.xyz>
Tue, 18 Mar 2025 23:55:05 +0000 (01:55 +0200)
src/main.cpp

index 8ef6a35..8ce6856 100644 (file)
@@ -79,6 +79,24 @@ static void accept_from_sock(struct listener *listener)
                // Set nonblock
                net_nonblock(newSocket);
 
+               {
+                       // enable keepalive
+                       int opt = 1;
+                       setsockopt(newSocket, SOL_SOCKET, SO_KEEPALIVE, (void*)&opt, sizeof(opt));
+#ifdef TCP_KEEPIDLE
+                       opt = 30;
+                       setsockopt(newSocket, IPPROTO_TCP, TCP_KEEPIDLE, (void*)&opt, sizeof(opt));
+#endif
+#ifdef TCP_KEEPINTVL
+                       opt = 1;
+                       setsockopt(newSocket, IPPROTO_TCP, TCP_KEEPINTVL, (void*)&opt, sizeof(opt));
+#endif
+#ifdef TCP_KEEPCNT
+                       opt = 10;
+                       setsockopt(newSocket, IPPROTO_TCP, TCP_KEEPCNT, (void*)&opt, sizeof(opt));
+#endif
+               }
+
                int is_onion = 0;
                int is_webirc = 0;
                {