From 4d7c07a2f3428242c5a55dcb0682af00d10e114b Mon Sep 17 00:00:00 2001 From: JP Meijers Date: Tue, 24 Feb 2026 16:05:10 +0200 Subject: [PATCH] Use instead SO_LINGER with timeout of 0 seconds --- tools/server/server-http.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tools/server/server-http.cpp b/tools/server/server-http.cpp index 3397b68fba..bf05ec7f59 100644 --- a/tools/server/server-http.cpp +++ b/tools/server/server-http.cpp @@ -283,10 +283,12 @@ bool server_http_context::start() { } else { LOG_INF("%s: binding port with default address family\n", __func__); - // Enable address reuse to allow immediate restart of server + // Set linger time to 0 to force close the socket immediately when the server stops srv->set_socket_options([](socket_t sock) { - const char flag = 1; - setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &flag, sizeof(flag)); + linger sl{}; + sl.l_onoff = 1; + sl.l_linger = 0; + setsockopt(sock, SOL_SOCKET, SO_LINGER, reinterpret_cast(&sl), sizeof(sl)); }); // bind HTTP listen port