summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/socket.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/socket.cpp b/src/socket.cpp
index 74427d42a..0db7e1a6b 100644
--- a/src/socket.cpp
+++ b/src/socket.cpp
@@ -93,11 +93,16 @@ int irc::sockets::OpenTCPSocket(const std::string& addr, int socktype)
}
else
{
- setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on));
/* This is BSD compatible, setting l_onoff to 0 is *NOT* http://web.irc.org/mla/ircd-dev/msg02259.html */
linger.l_onoff = 1;
linger.l_linger = 1;
+#ifdef WINDOWS
+ setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, (char*)&on, sizeof(on));
+ setsockopt(sockfd, SOL_SOCKET, SO_LINGER, (char*)&linger, sizeof(linger));
+#elif
+ setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on));
setsockopt(sockfd, SOL_SOCKET, SO_LINGER, &linger, sizeof(linger));
+#endif
return (sockfd);
}
}