Compile Windows with winsock2.h. But note that we still link with wsock32!
authorAndy Polyakov <appro@openssl.org>
Mon, 2 Jan 2006 13:44:06 +0000 (13:44 +0000)
committerAndy Polyakov <appro@openssl.org>
Mon, 2 Jan 2006 13:44:06 +0000 (13:44 +0000)
This works because wsock32 commonly loads ws2_32 anyway and we [intend to]
check upon presense of winsock2-specific API at run-time.

e_os.h

diff --git a/e_os.h b/e_os.h
index df72c7454aa6984d23b96eda013372219c608660..78753de970802f7900abd5b4933ecf7e6d64aa24 100644 (file)
--- a/e_os.h
+++ b/e_os.h
@@ -259,6 +259,18 @@ extern "C" {
        */
 #      define _WIN32_WINNT 0x0400
 #    endif
+#    if !defined(OPENSSL_NO_SOCK) && defined(_WIN32_WINNT)
+       /*
+        * Just like defining _WIN32_WINNT including winsock2.h implies
+        * certain "discipline" for maintaing [broad] binary compatibility.
+        * As long as structures are invariant among Winsock versions,
+        * it's sufficient to check for specific Winsock2 API availability
+        * at run-time [DSO_global_lookup is recommended]...
+        */
+#      include <winsock2.h>
+#      include <ws2tcpip.h>
+       /* yes, they have to be #included prior <windows.h> */
+#    endif
 #    include <windows.h>
 #    include <stddef.h>
 #    include <errno.h>