fix PR#2261 in a different way
authorDr. Stephen Henson <steve@openssl.org>
Mon, 31 May 2010 13:17:52 +0000 (13:17 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Mon, 31 May 2010 13:17:52 +0000 (13:17 +0000)
crypto/bio/b_sock.c
e_os.h

index ead477d8a29e0d7d83f26ee2ac5b1cc0be3358d9..f0d9cfca67cca1db5babb7ee8ac3603a2df563f5 100644 (file)
@@ -659,7 +659,14 @@ again:
 #ifdef SO_REUSEADDR
                err_num=get_last_socket_error();
                if ((bind_mode == BIO_BIND_REUSEADDR_IF_UNUSED) &&
+#ifdef OPENSSL_SYS_WINDOWS
+                       /* Some versions of Windows define EADDRINUSE to
+                        * a dummy value.
+                        */
+                       (err_num == WSAEADDRINUSE))
+#else
                        (err_num == EADDRINUSE))
+#endif
                        {
                        memcpy((char *)&client,(char *)&server,sizeof(server));
                        if (strcmp(h,"*") == 0)
diff --git a/e_os.h b/e_os.h
index 4b96c7bc6bec8ad1867b3865d2443c97384a8386..cc90f5e8caacda0f0c5abbf4b094966ded385f79 100644 (file)
--- a/e_os.h
+++ b/e_os.h
@@ -153,10 +153,6 @@ extern "C" {
 #define clear_socket_error()   WSASetLastError(0)
 #define readsocket(s,b,n)      recv((s),(b),(n),0)
 #define writesocket(s,b,n)     send((s),(b),(n),0)
-#ifdef EADDRINUSE
-#undef EADDRINUSE
-#endif
-#define EADDRINUSE             WSAEADDRINUSE
 #elif defined(__DJGPP__)
 #define WATT32
 #define get_last_socket_error()        errno