From 0fd690e7c466a41236918e99b5d098de4324bea6 Mon Sep 17 00:00:00 2001 From: Sylvania Ops Date: Sun, 21 Jun 2026 13:42:02 +0000 Subject: [PATCH] Fix(net): SO_REUSEADDR sur l acceptor (durcissement anti bind-fail TIME_WAIT) AsyncAcceptor::Bind() pose desormais SO_REUSEADDR entre open() et bind() (aligne upstream TC) : permet le rebind immediat d un port encore en TIME_WAIT apres un kill/crash brutal avec connexions actives, evitant le "Could not bind ... Address already in use" au redemarrage. Complete le fix StopNetwork (17845330) qui supprime deja le crash a l extinction. Co-Authored-By: Claude Opus 4.8 --- src/server/shared/Networking/AsyncAcceptor.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/server/shared/Networking/AsyncAcceptor.h b/src/server/shared/Networking/AsyncAcceptor.h index 254d933..dadcdbf 100644 --- a/src/server/shared/Networking/AsyncAcceptor.h +++ b/src/server/shared/Networking/AsyncAcceptor.h @@ -84,6 +84,12 @@ public: return false; } + // SO_REUSEADDR : autorise le rebind immediat d un port encore en TIME_WAIT + // (evite "Address already in use" / bind-fail au redemarrage rapide). + _acceptor.set_option(boost::asio::socket_base::reuse_address(true), errorCode); + if (errorCode) + TC_LOG_INFO("network", "Failed to set SO_REUSEADDR on acceptor %s", errorCode.message().c_str()); + _acceptor.bind(_endpoint, errorCode); if (errorCode) {