Compile Windows with winsock2.h. But note that we still link with wsock32! This works because wsock32 commonly loads ws2_32 anyway and we [intend to] check upon presense of winsock2-specific API at run-time.
diff --git a/e_os.h b/e_os.h index df72c74..78753de 100644 --- a/e_os.h +++ b/e_os.h
@@ -259,6 +259,18 @@ */ # 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>