From 663efdc5ab8915a8d76946e8fb547c60d793c130 Mon Sep 17 00:00:00 2001 From: frmdstryr Date: Sun, 15 Mar 2026 20:04:03 -0400 Subject: [PATCH] Use SO_REUSEADDR for #228 --- src/Network/GlobalHandler.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/Network/GlobalHandler.cpp b/src/Network/GlobalHandler.cpp index 776169ea..ca38f3f4 100644 --- a/src/Network/GlobalHandler.cpp +++ b/src/Network/GlobalHandler.cpp @@ -175,6 +175,13 @@ SOCKET SetupListener() { WSACleanup(); return -1; } +#ifdef __linux__ + // On linux the old socket can get stuck in time wait + const int reuse_addr = 1; + if (setsockopt(GSocket, SOL_SOCKET, SO_REUSEADDR, &reuse_addr, sizeof(int)) < 0) { + warn("(Proxy) setsockopt(SO_REUSEADDR) failed" + std::to_string(WSAGetLastError())); + } +#endif iRes = bind(GSocket, result->ai_addr, (int)result->ai_addrlen); if (iRes == SOCKET_ERROR) { error("(Proxy) bind failed with error: " + std::to_string(WSAGetLastError()));