- Include winsock2.h for Windows ADDRESS_FAMILY detection.
Prior to this change cmake detection didn't work because it included
ws2def.h by itself, which is missing needed types from winsock2.h.
Prior to this change autotools detection didn't work because it did not
include any Windows header.
In both cases libcurl would fall back on unsigned short as the address
family type, which is the same as ADDRESS_FAMILY.
Co-authored-by: Viktor Szakats
Closes https://github.com/curl/curl/pull/12441
set(CMAKE_EXTRA_INCLUDE_FILES "")
if(WIN32)
- set(CMAKE_EXTRA_INCLUDE_FILES "ws2def.h")
+ set(CMAKE_EXTRA_INCLUDE_FILES "winsock2.h")
check_type_size("ADDRESS_FAMILY" SIZEOF_ADDRESS_FAMILY)
set(HAVE_ADDRESS_FAMILY ${HAVE_SIZEOF_ADDRESS_FAMILY})
set(CMAKE_EXTRA_INCLUDE_FILES "")
AC_DEFINE(CURL_SA_FAMILY_T, ADDRESS_FAMILY, [IP address type in sockaddr]),
AC_DEFINE(CURL_SA_FAMILY_T, unsigned short, [IP address type in sockaddr]),
[
+#ifdef HAVE_WINDOWS_H
+#ifndef WIN32_LEAN_AND_MEAN
+#define WIN32_LEAN_AND_MEAN
+#endif
+#ifdef HAVE_WINSOCK2_H
+#include <winsock2.h>
+#endif
+#endif
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif