From a486bb5fcf59eeba5b454f6132067d6ef0dea7fb Mon Sep 17 00:00:00 2001 From: Egor Date: Wed, 19 Mar 2025 01:55:05 +0200 Subject: [PATCH] add tcp keepalive --- src/main.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) 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; { -- 2.56.0