(svn r15940) -Codechange: move setting reuse address to the binding process.

This commit is contained in:
rubidium 2009-04-03 17:02:29 +00:00
parent 2dafb9dd57
commit 1463b00b48
2 changed files with 8 additions and 7 deletions

View File

@ -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);

View File

@ -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;