From 1463b00b48a67bdbd8ad0ebdd327d38f42466248 Mon Sep 17 00:00:00 2001 From: rubidium Date: Fri, 3 Apr 2009 17:02:29 +0000 Subject: (svn r15940) -Codechange: move setting reuse address to the binding process. --- src/network/core/address.cpp | 8 ++++++++ src/network/network.cpp | 7 ------- 2 files changed, 8 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/network/core/address.cpp b/src/network/core/address.cpp index 5a79a436e..0498c793f 100644 --- a/src/network/core/address.cpp +++ b/src/network/core/address.cpp @@ -163,6 +163,14 @@ static SOCKET ListenLoopProc(addrinfo *runp) if (!SetNoDelay(sock)) DEBUG(net, 1, "Setting TCP_NODELAY failed"); + int reuse = 1; + /* The (const char*) cast is needed for windows!! */ + if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (const char*)&reuse, sizeof(reuse)) == -1) { + DEBUG(net, 1, "Could not bind, setsockopt() failed:", strerror(errno)); + closesocket(sock); + return INVALID_SOCKET; + } + if (bind(sock, runp->ai_addr, runp->ai_addrlen) != 0) { DEBUG(net, 1, "Could not bind: %s", strerror(errno)); closesocket(sock); diff --git a/src/network/network.cpp b/src/network/network.cpp index d2f918748..09e4e7a40 100644 --- a/src/network/network.cpp +++ b/src/network/network.cpp @@ -562,13 +562,6 @@ static bool NetworkListen() return false; } - int reuse = 1; - /* The (const char*) cast is needed for windows!! */ - if (setsockopt(ls, SOL_SOCKET, SO_REUSEADDR, (const char*)&reuse, sizeof(reuse)) == -1) { - ServerStartError("setsockopt() on listen socket failed"); - return false; - } - _listensocket = ls; return true; -- cgit v1.2.3-70-g09d2