From a39861b7bf03ec05ff09ed4b64adf6f09a82861a Mon Sep 17 00:00:00 2001
From: cry-inc <manuel@caputo.de>
Date: Wed, 7 May 2014 16:38:23 +0200
Subject: [PATCH] Fixed wrong behavior of mg_set_option() with option
 "listening_port" caused by SO_REUSEADDR when using Windows

---
 mongoose.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/mongoose.c b/mongoose.c
index d39709e31..212019371 100644
--- a/mongoose.c
+++ b/mongoose.c
@@ -525,10 +525,15 @@ static int ns_parse_port_string(const char *str, union socket_address *sa) {
 // 'sa' must be an initialized address to bind to
 static sock_t ns_open_listening_socket(union socket_address *sa) {
   socklen_t len = sizeof(*sa);
-  sock_t on = 1, sock = INVALID_SOCKET;
+#ifndef _WIN32
+  sock_t on = 1;
+#endif
+  sock_t sock = INVALID_SOCKET;
 
   if ((sock = socket(sa->sa.sa_family, SOCK_STREAM, 6)) != INVALID_SOCKET &&
+#ifndef _WIN32
       !setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (void *) &on, sizeof(on)) &&
+#endif
       !bind(sock, &sa->sa, sa->sa.sa_family == AF_INET ?
             sizeof(sa->sin) : sizeof(sa->sa)) &&
       !listen(sock, SOMAXCONN)) {
-- 
GitLab