]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
build: fix Windows ADDRESS_FAMILY detection
authorJay Satiro <raysatiro@yahoo.com>
Fri, 1 Dec 2023 23:06:12 +0000 (18:06 -0500)
committerJay Satiro <raysatiro@yahoo.com>
Fri, 8 Dec 2023 18:11:44 +0000 (13:11 -0500)
- 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

CMakeLists.txt
configure.ac

index 4042f001baa2ab0a02e82dc1aad6f4eb9f651676..c0abc284db2d7cfc46ff6b854cb918cc0febc5a0 100644 (file)
@@ -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   "")
index d9b396376d20c09b9ed59952b91db893e09ab234..d26a183f569d03ccb5810ea71a10bb270e654431 100644 (file)
@@ -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 <winsock2.h>
+#endif
+#endif
 #ifdef HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
 #endif