]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
Revert "build: remove checks for WinSock 1"
authorDaniel Stenberg <daniel@haxx.se>
Wed, 29 Sep 2021 06:16:42 +0000 (08:16 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Wed, 29 Sep 2021 08:42:49 +0000 (10:42 +0200)
Due to CI issues

This reverts commit c2ea04f92b00b6271627cb218647527b5a50f2fc.

Closes #7790

16 files changed:
CMake/CurlTests.c
CMake/OtherTests.cmake
CMakeLists.txt
acinclude.m4
configure.ac
lib/config-os400.h
lib/config-riscos.h
lib/config-tpf.h
lib/config-vxworks.h
lib/config-win32.h
lib/config-win32ce.h
lib/connect.c
lib/curl_config.h.cmake
lib/curl_setup.h
lib/setup-win32.h
m4/curl-functions.m4

index 8666da0da948bc2192be15f8c8e0d138a2f2729d..e418146b4848e35f88db5d52a53296ad2e9a1c71 100644 (file)
@@ -229,6 +229,10 @@ int main () { ; return 0; }
 #  include <windows.h>
 #  ifdef HAVE_WINSOCK2_H
 #    include <winsock2.h>
+#  else
+#    ifdef HAVE_WINSOCK_H
+#      include <winsock.h>
+#    endif
 #  endif
 #endif
 
@@ -254,6 +258,10 @@ main ()
 #  include <windows.h>
 #  ifdef HAVE_WINSOCK2_H
 #    include <winsock2.h>
+#  else
+#    ifdef HAVE_WINSOCK_H
+#      include <winsock.h>
+#    endif
 #  endif
 #endif
 
@@ -277,6 +285,10 @@ main ()
 #  include <windows.h>
 #  ifdef HAVE_WINSOCK2_H
 #    include <winsock2.h>
+#  else
+#    ifdef HAVE_WINSOCK_H
+#      include <winsock.h>
+#    endif
 #  endif
 #endif
 
@@ -301,6 +313,10 @@ main ()
 #  include <windows.h>
 #  ifdef HAVE_WINSOCK2_H
 #    include <winsock2.h>
+#  else
+#    ifdef HAVE_WINSOCK_H
+#      include <winsock.h>
+#    endif
 #  endif
 #endif
 
@@ -387,6 +403,10 @@ main ()
 #  include <windows.h>
 #  ifdef HAVE_WINSOCK2_H
 #    include <winsock2.h>
+#  else
+#    ifdef HAVE_WINSOCK_H
+#      include <winsock.h>
+#    endif
 #  endif
 #endif
 /* includes start */
index 73c813fe51a063fb0cb2b4419a09c3dc3f77f751..5cddf4afa9b04540ceec0652a3f80094c9e76db4 100644 (file)
@@ -33,6 +33,7 @@ set(signature_call_conv)
 if(HAVE_WINDOWS_H)
   add_header_include(HAVE_WINSOCK2_H "winsock2.h")
   add_header_include(HAVE_WINDOWS_H "windows.h")
+  add_header_include(HAVE_WINSOCK_H "winsock.h")
   set(_source_epilogue
       "${_source_epilogue}\n#ifndef WIN32_LEAN_AND_MEAN\n#define WIN32_LEAN_AND_MEAN\n#endif")
   set(signature_call_conv "PASCAL")
index 58e3c036681d2c45952175576f8d2f3d50b43c4e..cf9c390c3da2312ff29319dd37e72a3efde8b402 100644 (file)
@@ -910,6 +910,7 @@ endif()
 # Check for header files
 if(NOT UNIX)
   check_include_file_concat("windows.h"      HAVE_WINDOWS_H)
+  check_include_file_concat("winsock.h"      HAVE_WINSOCK_H)
   check_include_file_concat("ws2tcpip.h"     HAVE_WS2TCPIP_H)
   check_include_file_concat("winsock2.h"     HAVE_WINSOCK2_H)
   check_include_file_concat("wincrypt.h"     HAVE_WINCRYPT_H)
index 643b6bb42b8009dc54fa47b02456ad261fefdad9..277902daca7c80470fb51364562618f10a1b8f83 100644 (file)
@@ -235,6 +235,43 @@ AC_DEFUN([CURL_CHECK_NATIVE_WINDOWS], [
 ])
 
 
+dnl CURL_CHECK_HEADER_WINSOCK
+dnl -------------------------------------------------
+dnl Check for compilable and valid winsock.h header
+
+AC_DEFUN([CURL_CHECK_HEADER_WINSOCK], [
+  AC_REQUIRE([CURL_CHECK_HEADER_WINDOWS])dnl
+  AC_CACHE_CHECK([for winsock.h], [curl_cv_header_winsock_h], [
+    AC_COMPILE_IFELSE([
+      AC_LANG_PROGRAM([[
+#undef inline
+#ifndef WIN32_LEAN_AND_MEAN
+#define WIN32_LEAN_AND_MEAN
+#endif
+#include <windows.h>
+#include <winsock.h>
+      ]],[[
+#if defined(__CYGWIN__) || defined(__CEGCC__)
+        HAVE_WINSOCK_H shall not be defined.
+#else
+        int dummy=WSACleanup();
+#endif
+      ]])
+    ],[
+      curl_cv_header_winsock_h="yes"
+    ],[
+      curl_cv_header_winsock_h="no"
+    ])
+  ])
+  case "$curl_cv_header_winsock_h" in
+    yes)
+      AC_DEFINE_UNQUOTED(HAVE_WINSOCK_H, 1,
+        [Define to 1 if you have the winsock.h header file.])
+      ;;
+  esac
+])
+
+
 dnl CURL_CHECK_HEADER_WINSOCK2
 dnl -------------------------------------------------
 dnl Check for compilable and valid winsock2.h header
@@ -1021,6 +1058,10 @@ AC_DEFUN([CURL_CHECK_FUNC_RECV], [
 #include <windows.h>
 #ifdef HAVE_WINSOCK2_H
 #include <winsock2.h>
+#else
+#ifdef HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
 #endif
 #else
 #ifdef HAVE_PROTO_BSDSOCKET_H
@@ -1065,6 +1106,10 @@ struct Library *SocketBase = NULL;
 #include <windows.h>
 #ifdef HAVE_WINSOCK2_H
 #include <winsock2.h>
+#else
+#ifdef HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
 #endif
 #define RECVCALLCONV PASCAL
 #else
@@ -1142,6 +1187,7 @@ dnl return value in SEND_TYPE_RETV, and also defining the
 dnl type qualifier of second argument in SEND_QUAL_ARG2.
 
 AC_DEFUN([CURL_CHECK_FUNC_SEND], [
+  AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK])dnl
   AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK2])dnl
   AC_CHECK_HEADERS(sys/types.h sys/socket.h)
   #
@@ -1156,6 +1202,10 @@ AC_DEFUN([CURL_CHECK_FUNC_SEND], [
 #include <windows.h>
 #ifdef HAVE_WINSOCK2_H
 #include <winsock2.h>
+#else
+#ifdef HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
 #endif
 #else
 #ifdef HAVE_PROTO_BSDSOCKET_H
@@ -1200,6 +1250,10 @@ struct Library *SocketBase = NULL;
 #include <windows.h>
 #ifdef HAVE_WINSOCK2_H
 #include <winsock2.h>
+#else
+#ifdef HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
 #endif
 #define SENDCALLCONV PASCAL
 #else
@@ -1314,6 +1368,10 @@ AC_DEFUN([CURL_CHECK_MSG_NOSIGNAL], [
 #include <windows.h>
 #ifdef HAVE_WINSOCK2_H
 #include <winsock2.h>
+#else
+#ifdef HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
 #endif
 #else
 #ifdef HAVE_PROTO_BSDSOCKET_H
@@ -1350,6 +1408,7 @@ dnl -------------------------------------------------
 dnl Check for timeval struct
 
 AC_DEFUN([CURL_CHECK_STRUCT_TIMEVAL], [
+  AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK])dnl
   AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK2])dnl
   AC_CHECK_HEADERS(sys/types.h sys/time.h sys/socket.h)
   AC_CACHE_CHECK([for struct timeval], [curl_cv_struct_timeval], [
@@ -1363,6 +1422,10 @@ AC_DEFUN([CURL_CHECK_STRUCT_TIMEVAL], [
 #include <windows.h>
 #ifdef HAVE_WINSOCK2_H
 #include <winsock2.h>
+#else
+#ifdef HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
 #endif
 #endif
 #ifdef HAVE_SYS_TYPES_H
@@ -1418,6 +1481,9 @@ AC_DEFUN([TYPE_IN_ADDR_T], [
 #include <windows.h>
 #ifdef HAVE_WINSOCK2_H
 #include <winsock2.h>
+#else
+#ifdef HAVE_WINSOCK_H
+#include <winsock.h>
 #endif
 #endif
 #else
@@ -1461,6 +1527,10 @@ AC_DEFUN([TYPE_IN_ADDR_T], [
 #include <windows.h>
 #ifdef HAVE_WINSOCK2_H
 #include <winsock2.h>
+#else
+#ifdef HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
 #endif
 #else
 #ifdef HAVE_SYS_TYPES_H
@@ -1753,6 +1823,10 @@ AC_DEFUN([CURL_CHECK_FUNC_SELECT], [
 #include <windows.h>
 #ifdef HAVE_WINSOCK2_H
 #include <winsock2.h>
+#else
+#ifdef HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
 #endif
 #endif
 #ifdef HAVE_SYS_TYPES_H
@@ -1807,6 +1881,10 @@ struct Library *SocketBase = NULL;
 #include <windows.h>
 #ifdef HAVE_WINSOCK2_H
 #include <winsock2.h>
+#else
+#ifdef HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
 #endif
 #define SELECTCALLCONV PASCAL
 #endif
index 37cf62b566a75f4fbc5d016e587e627e34e1a0a7..152b0472eb7c3fa406164f708c6badc2084bfac6 100644 (file)
@@ -477,7 +477,7 @@ dnl Compilation based checks should not be done before this point.
 dnl **********************************************************************
 
 dnl **********************************************************************
-dnl Make sure that our checks for headers windows.h winsock2.h
+dnl Make sure that our checks for headers windows.h winsock.h winsock2.h
 dnl and ws2tcpip.h take precedence over any other further checks which
 dnl could be done later using AC_CHECK_HEADER or AC_CHECK_HEADERS for
 dnl this specific header files. And do them before its results are used.
@@ -487,6 +487,7 @@ CURL_CHECK_HEADER_WINDOWS
 CURL_CHECK_NATIVE_WINDOWS
 case X-"$curl_cv_native_windows" in
   X-yes)
+    CURL_CHECK_HEADER_WINSOCK
     CURL_CHECK_HEADER_WINSOCK2
     CURL_CHECK_HEADER_WS2TCPIP
     CURL_CHECK_HEADER_WINCRYPT
@@ -494,6 +495,7 @@ case X-"$curl_cv_native_windows" in
     CURL_CHECK_HEADER_WINBER
     ;;
   *)
+    curl_cv_header_winsock_h="no"
     curl_cv_header_winsock2_h="no"
     curl_cv_header_ws2tcpip_h="no"
     curl_cv_header_wincrypt_h="no"
@@ -1020,6 +1022,16 @@ if test "$HAVE_GETHOSTBYNAME" != "1"
 then
   dnl This is for winsock systems
   if test "$curl_cv_header_windows_h" = "yes"; then
+    if test "$curl_cv_header_winsock_h" = "yes"; then
+      case $host in
+        *-*-mingw32ce*)
+          winsock_LIB="-lwinsock"
+          ;;
+        *)
+          winsock_LIB="-lwsock32"
+          ;;
+      esac
+    fi
     if test "$curl_cv_header_winsock2_h" = "yes"; then
       winsock_LIB="-lws2_32"
     fi
@@ -1036,6 +1048,10 @@ then
 #include <windows.h>
 #ifdef HAVE_WINSOCK2_H
 #include <winsock2.h>
+#else
+#ifdef HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
 #endif
 #endif
         ]],[[
index d68cb4b18e461b3df908e4b66937a3e52fa3c34d..47b09465a1f268ce43645ccae9b7203b6999503b 100644 (file)
 /* Define if you have the <unistd.h> header file. */
 #define HAVE_UNISTD_H
 
+/* Define if you have the <winsock.h> header file. */
+#undef HAVE_WINSOCK_H
+
 /* Define if you have the <x509.h> header file. */
 #undef HAVE_X509_H
 
index 9986b20fba93cf3a77e41f78d79aa7abcd874125..6c6ff45ead2f60139754bc3e1158f5562ce6455c 100644 (file)
 /* Define if you have the <unistd.h> header file. */
 #define HAVE_UNISTD_H
 
+/* Define if you have the <winsock.h> header file. */
+#undef HAVE_WINSOCK_H
+
 /* Define if you have the <x509.h> header file. */
 #undef HAVE_X509_H
 
index cce06cedd8c4f5b5e28d131e25a16015ba6a9b18..0562ec91e701f4917b6b845b351282ba9e88ed7b 100644 (file)
 /* Define to 1 if you have the <winsock2.h> header file. */
 /* #undef HAVE_WINSOCK2_H */
 
+/* Define to 1 if you have the <winsock.h> header file. */
+/* #undef HAVE_WINSOCK_H */
+
 /* Define this symbol if your OS supports changing the contents of argv */
 /* #undef HAVE_WRITABLE_ARGV */
 
index af1d87345c0fa74773e5867bfe45b58a1e144a7f..042e67ee97f2af07c9b3ecf62a9520caaf60226c 100644 (file)
 /* Define to 1 if you have the winsock2.h header file. */
 /* #undef HAVE_WINSOCK2_H */
 
+/* Define to 1 if you have the winsock.h header file. */
+/* #undef HAVE_WINSOCK_H */
+
 /* Define this symbol if your OS supports changing the contents of argv */
 #define HAVE_WRITABLE_ARGV 1
 
index 89593a815d2de6beaaa4a05305981877c3e75804..b6a6ced599db2dee3aad9d73a0b074ce40f8f7ce 100644 (file)
 /* Define if you have the <windows.h> header file. */
 #define HAVE_WINDOWS_H 1
 
+/* Define if you have the <winsock.h> header file. */
+#define HAVE_WINSOCK_H 1
+
 /* Define if you have the <winsock2.h> header file. */
 #ifndef __SALFORDC__
 #define HAVE_WINSOCK2_H 1
 
 #ifdef USE_LWIPSOCK
 #  undef USE_WINSOCK
+#  undef HAVE_WINSOCK_H
 #  undef HAVE_WINSOCK2_H
 #  undef HAVE_WS2TCPIP_H
 #  undef HAVE_ERRNO_H
   #undef byte
   #undef word
   #undef USE_WINSOCK
+  #undef HAVE_WINSOCK_H
   #undef HAVE_WINSOCK2_H
   #undef HAVE_WS2TCPIP_H
   #define HAVE_GETADDRINFO
index 889028b269c6c8f5eb488d0c281b5f4b3b1408b3..70b7ae7b5b900009ee516cec25c9ae3c629dcf0a 100644 (file)
 /* Define if you have the <windows.h> header file.  */
 #define HAVE_WINDOWS_H 1
 
+/* Define if you have the <winsock.h> header file.  */
+#define HAVE_WINSOCK_H 1
+
 /* Define if you have the <winsock2.h> header file.  */
 #define HAVE_WINSOCK2_H 1
 
index 48c98ebd454cd6c0616dcf823afcda059505f497..d61b0374e384644fde8e006bc0c6c8c995aa0219 100644 (file)
@@ -85,7 +85,7 @@
 
 static bool verifyconnect(curl_socket_t sockfd, int *error);
 
-#if defined(__DragonFly__) || defined(HAVE_WINSOCK2_H)
+#if defined(__DragonFly__) || defined(HAVE_WINSOCK_H)
 /* DragonFlyBSD and Windows use millisecond units */
 #define KEEPALIVE_FACTOR(x) (x *= 1000)
 #else
index d2a0f438ccd816e9f305103dd949b2ce5e3b7e94..4ef4883b2cac8272bd66aa303dc050def5103072 100644 (file)
 /* Define to 1 if you have the winsock2.h header file. */
 #cmakedefine HAVE_WINSOCK2_H 1
 
+/* Define to 1 if you have the winsock.h header file. */
+#cmakedefine HAVE_WINSOCK_H 1
+
 /* Define this symbol if your OS supports changing the contents of argv */
 #cmakedefine HAVE_WRITABLE_ARGV 1
 
index 3840636f64be5b100591084f97a1edf36d51b589..99048c489a3d1b60040c2d08c84414b96027cb64 100644 (file)
@@ -717,6 +717,7 @@ int netware_init(void);
 #if defined(__LWIP_OPT_H__) || defined(LWIP_HDR_OPT_H)
 #  if defined(SOCKET) || \
      defined(USE_WINSOCK) || \
+     defined(HAVE_WINSOCK_H) || \
      defined(HAVE_WINSOCK2_H) || \
      defined(HAVE_WS2TCPIP_H)
 #    error "WinSock and lwIP TCP/IP stack definitions shall not coexist!"
index 12d95e9d5309d62f02e029d9b8cfe23347bba230..c35dec88cbc51682db7e1912bb1faf5cc5bdced7 100644 (file)
 /*
  * Include header files for windows builds before redefining anything.
  * Use this preprocessor block only to include or exclude windows.h,
- * winsock2.h or ws2tcpip.h. Any other windows thing belongs
+ * winsock2.h, ws2tcpip.h or winsock.h. Any other windows thing belongs
  * to any other further and independent block.  Under Cygwin things work
  * just as under linux (e.g. <sys/socket.h>) and the winsock headers should
  * never be included when __CYGWIN__ is defined.  configure script takes
- * care of this, not defining HAVE_WINDOWS_H, HAVE_WINSOCK2_H,
+ * care of this, not defining HAVE_WINDOWS_H, HAVE_WINSOCK_H, HAVE_WINSOCK2_H,
  * neither HAVE_WS2TCPIP_H when __CYGWIN__ is defined.
  */
 
 #    ifdef HAVE_WS2TCPIP_H
 #      include <ws2tcpip.h>
 #    endif
+#  else
+#    ifdef HAVE_WINSOCK_H
+#      include <winsock.h>
+#    endif
 #  endif
 #  include <tchar.h>
 #  ifdef UNICODE
 
 #ifdef HAVE_WINSOCK2_H
 #  define USE_WINSOCK 2
+#else
+#  ifdef HAVE_WINSOCK_H
+#    error "WinSock version 1 is no longer supported, version 2 is required!"
+#  endif
 #endif
 
 /*
index b21bbd1e2075227f68f50a425a28cc25494dbea5..d3ffaea9febcb89ff878b5dc9b22518ca6d9d5ba 100644 (file)
@@ -486,7 +486,7 @@ curl_includes_unistd="\
 dnl CURL_INCLUDES_WINSOCK2
 dnl -------------------------------------------------
 dnl Set up variable with list of headers that must be
-dnl included when winsock2.h is to be included.
+dnl included when winsock(2).h is to be included.
 
 AC_DEFUN([CURL_INCLUDES_WINSOCK2], [
 curl_includes_winsock2="\
@@ -498,10 +498,15 @@ curl_includes_winsock2="\
 #  include <windows.h>
 #  ifdef HAVE_WINSOCK2_H
 #    include <winsock2.h>
+#  else
+#    ifdef HAVE_WINSOCK_H
+#      include <winsock.h>
+#    endif
 #  endif
 #endif
 /* includes end */"
   CURL_CHECK_HEADER_WINDOWS
+  CURL_CHECK_HEADER_WINSOCK
   CURL_CHECK_HEADER_WINSOCK2
 ])