From: Egor Date: Tue, 18 Mar 2025 23:55:05 +0000 (+0200) Subject: add tcp keepalive X-Git-Url: https://git.patchysicp.xyz/?a=commitdiff_plain;h=a486bb5fcf59eeba5b454f6132067d6ef0dea7fb;p=patchyircd.git add tcp keepalive --- diff --git a/src/main.cpp b/src/main.cpp index 8ef6a35..8ce6856 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -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; {