summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/socket.cpp4
-rw-r--r--win/inspircd_win32wrapper.cpp5
-rw-r--r--win/inspircd_win32wrapper.h3
3 files changed, 10 insertions, 2 deletions
diff --git a/src/socket.cpp b/src/socket.cpp
index 0db7e1a6b..a4d1a7b79 100644
--- a/src/socket.cpp
+++ b/src/socket.cpp
@@ -97,8 +97,8 @@ int irc::sockets::OpenTCPSocket(const std::string& addr, int socktype)
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));
+ insp_setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on));
+ insp_setsockopt(sockfd, SOL_SOCKET, SO_LINGER, &linger, sizeof(linger));
#elif
setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on));
setsockopt(sockfd, SOL_SOCKET, SO_LINGER, &linger, sizeof(linger));
diff --git a/win/inspircd_win32wrapper.cpp b/win/inspircd_win32wrapper.cpp
index eb73378f2..d0ca50af8 100644
--- a/win/inspircd_win32wrapper.cpp
+++ b/win/inspircd_win32wrapper.cpp
@@ -91,6 +91,11 @@ int insp_inet_pton(int af, const char *src, void *dst)
return rv;
}
+int insp_setsockopt(int sockfd, int level, int optname, void *optval, int optlen)
+{
+ return setsockopt(sockfd, level, optname, (char*)optval, optlen);
+}
+
void setcolor(int color_code)
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color_code);
diff --git a/win/inspircd_win32wrapper.h b/win/inspircd_win32wrapper.h
index 6b068adea..86a7baffe 100644
--- a/win/inspircd_win32wrapper.h
+++ b/win/inspircd_win32wrapper.h
@@ -132,6 +132,9 @@ CoreExport const char * insp_inet_ntop(int af, const void * src, char * dst, soc
#define inet_pton insp_inet_pton
#define inet_ntop insp_inet_ntop
+/* slightly different format on setsockopt */
+CoreExport int insp_setsockopt(int sockfd, int level, int optname, void *optval, int optlen);
+
/* Safe printf functions aren't defined in VC2003 */
#define snprintf _snprintf
#define vsnprintf _vsnprintf