From eeeff40a70a30f5cf3688aba5e63f4c06b351036 Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Fri, 27 Apr 2018 19:18:09 +0200 Subject: [PATCH] Prevent TIME-WAIT connections from blocking listen address. Of course Windows has to be retarded in its own special way and implement SO_REUSEADDR with a completely different meaning. http://www.andy-pearce.com/blog/posts/2013/Feb/so_reuseaddr-on-windows/ --- common/TracySocket.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/common/TracySocket.cpp b/common/TracySocket.cpp index 829d2d8c..1dc4873b 100644 --- a/common/TracySocket.cpp +++ b/common/TracySocket.cpp @@ -228,6 +228,9 @@ bool ListenSocket::Listen( const char* port, int backlog ) #if defined _MSC_VER || defined __CYGWIN__ unsigned long val = 0; setsockopt( m_sock, IPPROTO_IPV6, IPV6_V6ONLY, (const char*)&val, sizeof( val ) ); +#else + int val = 1; + setsockopt( m_sock, SOL_SOCKET, SO_REUSEADDR, &val, sizeof( val ) ); #endif if( bind( m_sock, res->ai_addr, res->ai_addrlen ) == -1 ) return false; if( listen( m_sock, backlog ) == -1 ) return false;