From: Jay Satiro Date: Fri, 1 Dec 2023 23:06:12 +0000 (-0500) Subject: build: fix Windows ADDRESS_FAMILY detection X-Git-Tag: curl-8_6_0~238 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0f3f3843436c3c924e1ea2fe949c9ec51c3a6d2f;p=thirdparty%2Fcurl.git build: fix Windows ADDRESS_FAMILY detection - 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 --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 4042f001ba..c0abc284db 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1266,7 +1266,7 @@ set(HAVE_SA_FAMILY_T ${HAVE_SIZEOF_SA_FAMILY_T}) 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 "") diff --git a/configure.ac b/configure.ac index d9b396376d..d26a183f56 100644 --- a/configure.ac +++ b/configure.ac @@ -3473,6 +3473,14 @@ AC_CHECK_TYPE(sa_family_t, 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 +#endif +#endif #ifdef HAVE_SYS_SOCKET_H #include #endif