Mercurial > hg > openttd
changeset 11571:f4dcf759a3be draft
(svn r15940) -Codechange: move setting reuse address to the binding process.
author | rubidium <rubidium@openttd.org> |
---|---|
date | Fri, 03 Apr 2009 17:02:29 +0000 |
parents | fbf8c02a8cba |
children | e65b8d1e5c99 |
files | src/network/core/address.cpp src/network/network.cpp |
diffstat | 2 files changed, 8 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/src/network/core/address.cpp +++ b/src/network/core/address.cpp @@ -163,6 +163,14 @@ 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);
--- a/src/network/network.cpp +++ b/src/network/network.cpp @@ -562,13 +562,6 @@ 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;