From b17ef873ae2151263667f4b6fb6abfe337e687dc Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Thu, 24 Jul 2025 03:06:39 +0200 Subject: [PATCH] windows: bump minimum to Vista (from XP) After this patch curl requires targeting Vista or newer, and a toolchain with Vista support. Supported MSVC compilers (VS2010+) all support Vista: - VS2012+ target Win8 (or later) by default. - VS2010 targets Win7 by default. Supported mingw-w64 versions (v3+) all support Vista: - mingw-w64 v9+ target Win10 by default. - mingw-w64 v8 and older target Server 2003 (~XP) by default. After this patch it may be necessary to override the default Windows target version to Vista (or newer) via: autotools: `CPPFLAGS=-D_WIN32_WINNT=0x0600` cmake: `-DCURL_TARGET_WINDOWS_VERSION=0x0600` - mingw-w64 v6+ allow changing the default at toolchain build-time. Notes: - For non-MSVC, non-mingw-w64 toolchains, `if_nametoindex` needs to be allowlisted in `curl_setup.h`, if they do support it. Fixes #17985 (discussion) Closes #18009 --- .github/workflows/windows.yml | 8 +- CMakeLists.txt | 27 +---- appveyor.sh | 1 - appveyor.yml | 3 +- configure.ac | 123 +++++----------------- docs/DEPRECATE.md | 8 +- docs/INSTALL.md | 2 +- docs/INTERNALS.md | 2 +- docs/examples/block_ip.c | 6 +- lib/cf-socket.c | 33 ------ lib/cf-socket.h | 15 --- lib/config-win32.h | 47 --------- lib/curl_setup.h | 12 +++ lib/curl_threads.h | 6 +- lib/curlx/timeval.c | 40 ++------ lib/easy_lock.h | 4 +- lib/ftp.c | 3 - lib/idn.c | 14 --- lib/rand.c | 3 +- lib/setup-win32.h | 6 -- lib/sha256.c | 5 - lib/system_win32.c | 142 -------------------------- lib/system_win32.h | 12 +-- lib/url.c | 13 +-- lib/vtls/schannel.c | 76 +------------- projects/Windows/tmpl/curl.vcxproj | 96 ++++++++--------- projects/Windows/tmpl/libcurl.vcxproj | 40 ++++---- 27 files changed, 136 insertions(+), 611 deletions(-) diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 9c0764cd05..65f4190e91 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -199,7 +199,7 @@ jobs: - { build: 'cmake' , sys: 'msys' , env: 'x86_64' , tflags: '' , config: '-DENABLE_DEBUG=ON -DENABLE_THREADED_RESOLVER=OFF', install: 'openssl-devel libssh2-devel', name: 'default' } - { build: 'autotools', sys: 'msys' , env: 'x86_64' , tflags: '' , config: '--with-openssl', install: 'openssl-devel libssh2-devel', name: 'default R' } # MinGW - - { build: 'autotools', sys: 'mingw64' , env: 'x86_64' , tflags: 'skiprun' , config: '--enable-debug --with-openssl --disable-threaded-resolver --disable-curldebug --enable-static --without-zlib CPPFLAGS=-D_WIN32_WINNT=0x0501', install: 'mingw-w64-x86_64-openssl mingw-w64-x86_64-libssh2', name: 'default XP' } + - { build: 'autotools', sys: 'mingw64' , env: 'x86_64' , tflags: 'skiprun' , config: '--enable-debug --with-openssl --disable-threaded-resolver --disable-curldebug --enable-static --without-zlib', install: 'mingw-w64-x86_64-openssl mingw-w64-x86_64-libssh2', name: 'default' } - { build: 'autotools', sys: 'mingw64' , env: 'x86_64' , tflags: '' , config: '--enable-debug --with-openssl --enable-windows-unicode --enable-ares --with-openssl-quic --enable-static --disable-shared', install: 'mingw-w64-x86_64-c-ares mingw-w64-x86_64-openssl mingw-w64-x86_64-nghttp3 mingw-w64-x86_64-libssh2', name: 'c-ares U' } - { build: 'cmake' , sys: 'mingw64' , env: 'x86_64' , tflags: '--min=1650', config: '-DENABLE_DEBUG=ON -DBUILD_SHARED_LIBS=OFF -DCURL_USE_SCHANNEL=ON -DENABLE_UNICODE=ON -DENABLE_ARES=ON', install: 'mingw-w64-x86_64-c-ares mingw-w64-x86_64-libssh2', type: 'Debug', name: 'schannel c-ares U' } # MinGW torture @@ -443,7 +443,7 @@ jobs: env: 'x86_64' ver: '7.3.0' url: 'https://downloads.sourceforge.net/mingw-w64/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/7.3.0/threads-win32/seh/x86_64-7.3.0-release-win32-seh-rt_v5-rev0.7z' - config: '-DENABLE_DEBUG=ON -DBUILD_SHARED_LIBS=OFF -DCURL_USE_SCHANNEL=ON -DENABLE_UNICODE=ON -DCURL_USE_MBEDTLS=ON' + config: '-DENABLE_DEBUG=ON -DBUILD_SHARED_LIBS=OFF -DCURL_USE_SCHANNEL=ON -DENABLE_UNICODE=ON -DCURL_USE_MBEDTLS=ON -DCURL_TARGET_WINDOWS_VERSION=0x0600' install: mingw-w64-x86_64-mbedtls type: 'Release' tflags: 'skiprun' @@ -453,7 +453,7 @@ jobs: env: 'i686' ver: '6.4.0' url: 'https://downloads.sourceforge.net/mingw-w64/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/6.4.0/threads-win32/dwarf/i686-6.4.0-release-win32-dwarf-rt_v5-rev0.7z' - config: '-DENABLE_DEBUG=ON -DCURL_USE_SCHANNEL=ON -DENABLE_UNICODE=OFF -DCMAKE_UNITY_BUILD=OFF' + config: '-DENABLE_DEBUG=ON -DCURL_USE_SCHANNEL=ON -DENABLE_UNICODE=OFF -DCMAKE_UNITY_BUILD=OFF -DCURL_TARGET_WINDOWS_VERSION=0x0600' type: 'Debug' tflags: 'skiprun' - name: 'schannel !examples' # mingw-w64 3.0 @@ -462,7 +462,7 @@ jobs: env: 'x86_64' ver: '4.8.1' url: 'https://downloads.sourceforge.net/mingw-w64/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/4.8.1/threads-win32/seh/x86_64-4.8.1-release-win32-seh-rt_v3-rev2.7z' - config: '-DENABLE_DEBUG=ON -DBUILD_SHARED_LIBS=OFF -DCURL_USE_SCHANNEL=ON' + config: '-DENABLE_DEBUG=ON -DBUILD_SHARED_LIBS=OFF -DCURL_USE_SCHANNEL=ON -DCURL_TARGET_WINDOWS_VERSION=0x0600' type: 'Debug' tflags: 'skipall' chkprefill: '' # Set it once to silence actionlint diff --git a/CMakeLists.txt b/CMakeLists.txt index 55d88d69d7..c3da479065 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1427,21 +1427,9 @@ if(WIN32) list(APPEND CURL_INCLUDES "winsock2.h") list(APPEND CURL_INCLUDES "ws2tcpip.h") - if(HAVE_WIN32_WINNT AND HAVE_WIN32_WINNT LESS 0x0501) - # Windows XP is required for freeaddrinfo, getaddrinfo - message(FATAL_ERROR "Building for Windows XP or newer is required.") - endif() - - # Pre-fill detection results based on target OS version - if(_CURL_PREFILL) - if(NOT HAVE_WIN32_WINNT OR HAVE_WIN32_WINNT LESS 0x0600 OR # older than Windows Vista - WINDOWS_STORE) - set(HAVE_IF_NAMETOINDEX 0) - unset(HAVE_IF_NAMETOINDEX CACHE) - elseif(MSVC OR MINGW) - set(HAVE_IF_NAMETOINDEX 1) - unset(HAVE_IF_NAMETOINDEX CACHE) - endif() + if(HAVE_WIN32_WINNT AND HAVE_WIN32_WINNT LESS 0x0600) + # Windows Vista is required for freeaddrinfo, getaddrinfo, if_nametoindex + message(FATAL_ERROR "Building for Windows Vista or newer is required.") endif() endif() @@ -1599,10 +1587,7 @@ check_function_exists("getrlimit" HAVE_GETRLIMIT) check_function_exists("setlocale" HAVE_SETLOCALE) check_function_exists("setrlimit" HAVE_SETRLIMIT) -if(WIN32) - # include wincrypt.h as a workaround for mingw-w64 __MINGW64_VERSION_MAJOR <= 5 header bug */ - check_symbol_exists("if_nametoindex" "winsock2.h;wincrypt.h;iphlpapi.h" HAVE_IF_NAMETOINDEX) # Windows Vista+ non-UWP */ -else() +if(NOT WIN32) check_function_exists("if_nametoindex" HAVE_IF_NAMETOINDEX) # net/if.h check_function_exists("realpath" HAVE_REALPATH) check_function_exists("sched_yield" HAVE_SCHED_YIELD) @@ -2004,9 +1989,7 @@ curl_add_if("HTTPS-proxy" NOT CURL_DISABLE_PROXY AND _ssl_enabled AND (USE_OPE OR USE_SCHANNEL OR USE_RUSTLS OR USE_MBEDTLS OR (USE_WOLFSSL AND HAVE_WOLFSSL_BIO_NEW))) curl_add_if("Unicode" ENABLE_UNICODE) -curl_add_if("threadsafe" HAVE_ATOMIC OR - (USE_THREADS_POSIX AND HAVE_PTHREAD_H) OR - (WIN32 AND HAVE_WIN32_WINNT GREATER_EQUAL 0x0600)) +curl_add_if("threadsafe" HAVE_ATOMIC OR (USE_THREADS_POSIX AND HAVE_PTHREAD_H) OR WIN32) curl_add_if("Debug" ENABLE_DEBUG) curl_add_if("TrackMemory" ENABLE_CURLDEBUG) curl_add_if("ECH" _ssl_enabled AND HAVE_ECH) diff --git a/appveyor.sh b/appveyor.sh index d529f36c7f..1a8df9ff8a 100644 --- a/appveyor.sh +++ b/appveyor.sh @@ -66,7 +66,6 @@ if [ "${BUILD_SYSTEM}" = 'CMake' ]; then [ "${_chkprefill}" = '_chkprefill' ] && options+=' -D_CURL_PREFILL=OFF' [[ "${TARGET}" = *'ARM64'* ]] && SKIP_RUN='ARM64 architecture' [ -n "${TOOLSET:-}" ] && options+=" -T ${TOOLSET}" - [ -n "${WINTARGET:-}" ] && options+=" -DCURL_TARGET_WINDOWS_VERSION=${WINTARGET}" [ "${OPENSSL}" = 'ON' ] && options+=" -DOPENSSL_ROOT_DIR=${openssl_root_win}" [ -n "${CURLDEBUG:-}" ] && options+=" -DENABLE_CURLDEBUG=${CURLDEBUG}" if [ "${APPVEYOR_BUILD_WORKER_IMAGE}" = 'Visual Studio 2013' ]; then diff --git a/appveyor.yml b/appveyor.yml index 553782c4eb..b814c5c6a8 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -61,11 +61,10 @@ environment: SCHANNEL: 'ON' DEBUG: 'OFF' CURLDEBUG: 'ON' - - job_name: 'CM VS2010, Debug, x64, Schannel, Shared, Build-tests & examples, XP' + - job_name: 'CM VS2010, Debug, x64, Schannel, Shared, Build-tests & examples' APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2013' PRJ_GEN: 'Visual Studio 10 2010' TARGET: '-A x64' - WINTARGET: 0x0501 # Windows XP PRJ_CFG: Debug SCHANNEL: 'ON' SHARED: 'ON' diff --git a/configure.ac b/configure.ac index 00696689bd..24b64f66b8 100644 --- a/configure.ac +++ b/configure.ac @@ -579,6 +579,22 @@ if test "$curl_cv_native_windows" = "yes"; then case "$CPPFLAGS" in *-DWINSTORECOMPAT*) curl_cv_winuwp='yes';; esac + + AC_MSG_CHECKING([if building for Windows Vista or newer]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + #include + ]],[[ + #if (_WIN32_WINNT < 0x600) + #error + #endif + ]]) + ],[ + AC_MSG_RESULT([yes]) + ],[ + AC_MSG_RESULT([no]) + AC_MSG_ERROR([Building for Windows Vista or newer is required.]) + ]) fi CURL_SET_COMPILER_BASIC_OPTS @@ -2812,7 +2828,7 @@ if test "$curl_cv_native_windows" = "yes"; then AC_MSG_CHECKING([whether to enable Windows native IDN (Windows native builds only)]) OPT_WINIDN="default" AC_ARG_WITH(winidn, -AS_HELP_STRING([--with-winidn=PATH],[enable Windows native IDN]) +AS_HELP_STRING([--with-winidn],[enable Windows native IDN]) AS_HELP_STRING([--without-winidn], [disable Windows native IDN]), OPT_WINIDN=$withval) case "$OPT_WINIDN" in @@ -2821,75 +2837,18 @@ AS_HELP_STRING([--without-winidn], [disable Windows native IDN]), want_winidn="no" AC_MSG_RESULT([no]) ;; - yes) - dnl --with-winidn option used without path - want_winidn="yes" - want_winidn_path="default" - AC_MSG_RESULT([yes]) - ;; *) - dnl --with-winidn option used with path + dnl --with-winidn option want_winidn="yes" - want_winidn_path="$withval" - AC_MSG_RESULT([yes ($withval)]) + AC_MSG_RESULT([yes]) ;; esac if test "$want_winidn" = "yes"; then - dnl WinIDN library support has been requested - clean_CPPFLAGS="$CPPFLAGS" - clean_LDFLAGS="$LDFLAGS" - clean_LDFLAGSPC="$LDFLAGSPC" - clean_LIBS="$LIBS" - WINIDN_LIBS="-lnormaliz" - WINIDN_CPPFLAGS="" - # - if test "$want_winidn_path" != "default"; then - dnl path has been specified - dnl pkg-config not available or provides no info - WINIDN_LDFLAGS="-L$want_winidn_path/lib$libsuff" - WINIDN_CPPFLAGS="-I$want_winidn_path/include" - fi - # - CPPFLAGS="$CPPFLAGS $WINIDN_CPPFLAGS" - LDFLAGS="$LDFLAGS $WINIDN_LDFLAGS" - LDFLAGSPC="$LDFLAGSPC $WINIDN_LDFLAGS" - LIBS="$WINIDN_LIBS $LIBS" - # - AC_MSG_CHECKING([if IdnToUnicode can be linked]) - AC_LINK_IFELSE([ - AC_LANG_PROGRAM([[ - #include - ]],[[ - #if (!defined(_WIN32_WINNT) || _WIN32_WINNT < 0x600) && \ - (!defined(WINVER) || WINVER < 0x600) - WINBASEAPI int WINAPI IdnToUnicode(DWORD dwFlags, - const WCHAR *lpASCIICharStr, - int cchASCIIChar, - WCHAR *lpUnicodeCharStr, - int cchUnicodeChar); - #endif - IdnToUnicode(0, NULL, 0, NULL, 0); - ]]) - ],[ - AC_MSG_RESULT([yes]) - tst_links_winidn="yes" - ],[ - AC_MSG_RESULT([no]) - tst_links_winidn="no" - ]) - # - if test "$tst_links_winidn" = "yes"; then - AC_DEFINE(USE_WIN32_IDN, 1, [Define to 1 if you have the `normaliz' (WinIDN) library (-lnormaliz).]) - IDN_ENABLED=1 - curl_idn_msg="enabled (Windows-native)" - else - AC_MSG_WARN([Cannot find libraries for IDN support: IDN disabled]) - CPPFLAGS="$clean_CPPFLAGS" - LDFLAGS="$clean_LDFLAGS" - LDFLAGSPC="$clean_LDFLAGSPC" - LIBS="$clean_LIBS" - fi + LIBS="-lnormaliz $LIBS" + AC_DEFINE(USE_WIN32_IDN, 1, [Define to 1 if you have the `normaliz' (WinIDN) library (-lnormaliz).]) + IDN_ENABLED=1 + curl_idn_msg="enabled (Windows-native)" fi fi @@ -4250,26 +4209,7 @@ AC_CHECK_FUNCS([\ utimes \ ]) -if test "$curl_cv_native_windows" = "yes"; then - AC_MSG_CHECKING([for if_nametoindex on Windows]) - AC_LINK_IFELSE([ - AC_LANG_PROGRAM([[ - #ifndef WIN32_LEAN_AND_MEAN - #define WIN32_LEAN_AND_MEAN - #endif - #include - #include /* workaround for mingw-w64 __MINGW64_VERSION_MAJOR <= 5 header bug */ - #include - ]],[[ - if_nametoindex(""); - ]]) - ],[ - AC_MSG_RESULT([yes]) - AC_DEFINE(HAVE_IF_NAMETOINDEX, 1, [if you have the 'if_nametoindex' function]) - ],[ - AC_MSG_RESULT([no]) - ]) -else +if test "$curl_cv_native_windows" != "yes"; then AC_CHECK_FUNCS([\ if_nametoindex \ realpath \ @@ -5369,19 +5309,8 @@ if test "$tst_atomic" = "yes"; then SUPPORT_FEATURES="$SUPPORT_FEATURES threadsafe" elif test "$USE_THREADS_POSIX" = "1" && test "$ac_cv_header_pthread_h" = "yes"; then SUPPORT_FEATURES="$SUPPORT_FEATURES threadsafe" -else - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ - #include - ]],[[ - #if (_WIN32_WINNT < 0x600) - #error - #endif - ]]) - ],[ - SUPPORT_FEATURES="$SUPPORT_FEATURES threadsafe" - ],[ - ]) +elif test "$curl_cv_native_windows" = "yes"; then + SUPPORT_FEATURES="$SUPPORT_FEATURES threadsafe" fi if test "$want_winuni" = "yes"; then diff --git a/docs/DEPRECATE.md b/docs/DEPRECATE.md index 2219bd3264..8ba75acee4 100644 --- a/docs/DEPRECATE.md +++ b/docs/DEPRECATE.md @@ -12,13 +12,6 @@ email the as soon as possible and explain to us why this is a problem for you and how your use case cannot be satisfied properly using a workaround. -## Windows XP - -In January 2026, curl drops support for Windows XP and Server 2003. Their -"mainstream support" ended in 2014, with final updates on May 14, 2019. - -Making the new minimum target Windows version Vista / Server 2008. - ## c-ares 1.16.0 In March 2026, we drop support for all c-ares versions before 1.16.0. @@ -77,3 +70,4 @@ CMake 3.18 was released on 2020-07-15. - Windows CE (removed in 8.18.0) - Support for Visual Studio 2008 (removed in 8.18.0) - OpenSSL 1.1.1 and older (removed in 8.18.0) + - Support for Windows XP (removed in 8.19.0) diff --git a/docs/INSTALL.md b/docs/INSTALL.md index 17dd78a740..12ec78e161 100644 --- a/docs/INSTALL.md +++ b/docs/INSTALL.md @@ -196,7 +196,7 @@ library check. # Windows -Building for Windows XP is required as a minimum. +Building for Windows Vista/Server 2008 is required as a minimum. You can build curl with: diff --git a/docs/INTERNALS.md b/docs/INTERNALS.md index aebcd7010c..e1665314c4 100644 --- a/docs/INTERNALS.md +++ b/docs/INTERNALS.md @@ -36,7 +36,7 @@ We aim to support these or later versions. - nghttp2 1.15.0 (2016-09-25) - OpenLDAP 2.0 (2000-08-01) - OpenSSL 3.0.0 (2021-09-07) -- Windows XP 5.1 (2001-08-24 - 2009-04-14) +- Windows Vista 6.0 (2006-11-08 - 2012-04-10) - wolfSSL 3.4.6 (2017-09-22) - zlib 1.2.5.2 (2011-12-11) - zstd 1.0 (2016-08-31) diff --git a/docs/examples/block_ip.c b/docs/examples/block_ip.c index 3bb837f155..12ca988bbd 100644 --- a/docs/examples/block_ip.c +++ b/docs/examples/block_ip.c @@ -38,11 +38,7 @@ int main(void) } #else -#ifdef _WIN32 -#if !defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0600 -#undef _WIN32_WINNT -#define _WIN32_WINNT 0x0600 /* Requires Windows Vista */ -#endif +#ifdef _WIN32 /* Requires Windows Vista+ */ #include #include #include diff --git a/lib/cf-socket.c b/lib/cf-socket.c index 88c5b810c9..f633383b97 100644 --- a/lib/cf-socket.c +++ b/lib/cf-socket.c @@ -440,37 +440,6 @@ int Curl_socket_close(struct Curl_easy *data, struct connectdata *conn, return socket_close(data, conn, FALSE, sock); } -#ifdef USE_WINSOCK -/* When you run a program that uses the Windows Sockets API, you may - experience slow performance when you copy data to a TCP server. - - https://learn.microsoft.com/troubleshoot/windows-server/networking/slow-performance-copy-data-tcp-server-sockets-api - - Work-around: Make the Socket Send Buffer Size Larger Than the Program Send - Buffer Size - - The problem described in this knowledge-base is applied only to pre-Vista - Windows. Following function trying to detect OS version and skips - SO_SNDBUF adjustment for Windows Vista and above. -*/ - -void Curl_sndbuf_init(curl_socket_t sockfd) -{ - int val = CURL_MAX_WRITE_SIZE + 32; - int curval = 0; - int curlen = sizeof(curval); - - if(Curl_isVistaOrGreater) - return; - - if(getsockopt(sockfd, SOL_SOCKET, SO_SNDBUF, (char *)&curval, &curlen) == 0) - if(curval > val) - return; - - setsockopt(sockfd, SOL_SOCKET, SO_SNDBUF, (const char *)&val, sizeof(val)); -} -#endif /* USE_WINSOCK */ - /* * Curl_parse_interface() * @@ -1133,8 +1102,6 @@ static CURLcode cf_socket_open(struct Curl_cfilter *cf, nosigpipe(cf, data, ctx->sock); - Curl_sndbuf_init(ctx->sock); - if(is_tcp && data->set.tcp_keepalive) tcpkeepalive(cf, data, ctx->sock); diff --git a/lib/cf-socket.h b/lib/cf-socket.h index 9db492e1c3..e6d05962a9 100644 --- a/lib/cf-socket.h +++ b/lib/cf-socket.h @@ -76,21 +76,6 @@ CURLcode Curl_socket_open(struct Curl_easy *data, int Curl_socket_close(struct Curl_easy *data, struct connectdata *conn, curl_socket_t sock); -#ifdef USE_WINSOCK -/* When you run a program that uses the Windows Sockets API, you may - experience slow performance when you copy data to a TCP server. - - https://learn.microsoft.com/troubleshoot/windows-server/networking/slow-performance-copy-data-tcp-server-sockets-api - - Work-around: Make the Socket Send Buffer Size Larger Than the Program Send - Buffer Size - -*/ -void Curl_sndbuf_init(curl_socket_t sockfd); -#else -#define Curl_sndbuf_init(y) Curl_nop_stmt -#endif - /** * Creates a cfilter that opens a TCP socket to the given address * when calling its `connect` implementation. diff --git a/lib/config-win32.h b/lib/config-win32.h index 82e62d16df..1a0c445b3d 100644 --- a/lib/config-win32.h +++ b/lib/config-win32.h @@ -28,53 +28,6 @@ /* Hand crafted config file for Windows */ /* ================================================================ */ -/* Define some minimum and default build targets for Visual Studio */ -#ifdef _MSC_VER - /* VS2012 default target settings and minimum build target check. */ -# if _MSC_VER >= 1700 - /* The minimum and default build targets for VS2012 are Vista and 8, - respectively, unless Update 1 is installed and the v110_xp toolset - is chosen. */ -# ifdef _USING_V110_SDK71_ -# define VS2012_MIN_TARGET 0x0501 /* XP */ -# define VS2012_DEF_TARGET 0x0501 /* XP */ -# else -# define VS2012_MIN_TARGET 0x0600 /* Vista */ -# define VS2012_DEF_TARGET 0x0602 /* 8 */ -# endif - -# ifndef _WIN32_WINNT -# define _WIN32_WINNT VS2012_DEF_TARGET -# endif -# ifndef WINVER -# define WINVER VS2012_DEF_TARGET -# endif -# if (_WIN32_WINNT < VS2012_MIN_TARGET) || (WINVER < VS2012_MIN_TARGET) -# ifdef _USING_V110_SDK71_ -# error VS2012 does not support build targets prior to Windows XP -# else -# error VS2012 does not support build targets prior to Windows Vista -# endif -# endif - /* VS2010 default target settings and minimum build target check. */ -# else - /* VS2010 default build target is Windows 7 (0x0601). - We override default target to be Windows XP. */ -# define VS2010_MIN_TARGET 0x0501 /* XP */ -# define VS2010_DEF_TARGET 0x0501 /* XP */ - -# ifndef _WIN32_WINNT -# define _WIN32_WINNT VS2010_DEF_TARGET -# endif -# ifndef WINVER -# define WINVER VS2010_DEF_TARGET -# endif -# if (_WIN32_WINNT < VS2010_MIN_TARGET) || (WINVER < VS2010_MIN_TARGET) -# error VS2010 does not support build targets prior to Windows XP -# endif -# endif -#endif /* _MSC_VER */ - /* ---------------------------------------------------------------- */ /* HEADER FILES */ /* ---------------------------------------------------------------- */ diff --git a/lib/curl_setup.h b/lib/curl_setup.h index 7698305a5b..2f3d9a6ba3 100644 --- a/lib/curl_setup.h +++ b/lib/curl_setup.h @@ -156,6 +156,18 @@ #endif /* HAVE_CONFIG_H */ +#ifdef _WIN32 +# if defined(_WIN32_WINNT) && (_WIN32_WINNT < 0x0600) +# error The minimum build target is Windows Vista (0x0600) +# endif + +# if !defined(CURL_WINDOWS_UWP) && (defined(_MSC_VER) || defined(__MINGW32__)) +# ifndef HAVE_IF_NAMETOINDEX +# define HAVE_IF_NAMETOINDEX +# endif +# endif +#endif + /* ================================================================ */ /* Definition of preprocessor macros/symbols which modify compiler */ /* behavior or generated code characteristics must be done here, */ diff --git a/lib/curl_threads.h b/lib/curl_threads.h index 241014cc6a..0e067c059a 100644 --- a/lib/curl_threads.h +++ b/lib/curl_threads.h @@ -41,11 +41,7 @@ # define curl_mutex_t CRITICAL_SECTION # define curl_thread_t HANDLE # define curl_thread_t_null (HANDLE)0 -# if !defined(_WIN32_WINNT) || (_WIN32_WINNT < _WIN32_WINNT_VISTA) -# define Curl_mutex_init(m) InitializeCriticalSection(m) -# else -# define Curl_mutex_init(m) InitializeCriticalSectionEx(m, 0, 1) -# endif +# define Curl_mutex_init(m) InitializeCriticalSectionEx(m, 0, 1) # define Curl_mutex_acquire(m) EnterCriticalSection(m) # define Curl_mutex_release(m) LeaveCriticalSection(m) # define Curl_mutex_destroy(m) DeleteCriticalSection(m) diff --git a/lib/curlx/timeval.c b/lib/curlx/timeval.c index fa7e528dd6..75c4984815 100644 --- a/lib/curlx/timeval.c +++ b/lib/curlx/timeval.c @@ -25,54 +25,26 @@ #ifdef _WIN32 -#include "version_win32.h" #include "../system_win32.h" LARGE_INTEGER Curl_freq; -bool Curl_isVistaOrGreater; /* For tool or tests, we must initialize before calling curlx_now(). Providing this function here is wrong. */ void curlx_now_init(void) { - if(curlx_verify_windows_version(6, 0, 0, PLATFORM_WINNT, - VERSION_GREATER_THAN_EQUAL)) - Curl_isVistaOrGreater = true; - else - Curl_isVistaOrGreater = false; - QueryPerformanceFrequency(&Curl_freq); } /* In case of bug fix this function has a counterpart in tool_util.c */ void curlx_pnow(struct curltime *pnow) { - bool isVistaOrGreater; - isVistaOrGreater = Curl_isVistaOrGreater; - if(isVistaOrGreater) { /* QPC timer might have issues pre-Vista */ - LARGE_INTEGER count; - LARGE_INTEGER freq; - freq = Curl_freq; - DEBUGASSERT(freq.QuadPart); - QueryPerformanceCounter(&count); - pnow->tv_sec = (time_t)(count.QuadPart / freq.QuadPart); - pnow->tv_usec = (int)((count.QuadPart % freq.QuadPart) * 1000000 / - freq.QuadPart); - } - else { - /* Disable /analyze warning that GetTickCount64 is preferred */ -#ifdef _MSC_VER -#pragma warning(push) -#pragma warning(disable:28159) -#endif - DWORD milliseconds = GetTickCount(); -#ifdef _MSC_VER -#pragma warning(pop) -#endif - - pnow->tv_sec = (time_t)(milliseconds / 1000); - pnow->tv_usec = (int)((milliseconds % 1000) * 1000); - } + LARGE_INTEGER count; + DEBUGASSERT(Curl_freq.QuadPart); + QueryPerformanceCounter(&count); + pnow->tv_sec = (time_t)(count.QuadPart / Curl_freq.QuadPart); + pnow->tv_usec = (int)((count.QuadPart % Curl_freq.QuadPart) * 1000000 / + Curl_freq.QuadPart); } #elif defined(HAVE_CLOCK_GETTIME_MONOTONIC) || \ diff --git a/lib/easy_lock.h b/lib/easy_lock.h index 10c84c6a5b..cefb01ddc8 100644 --- a/lib/easy_lock.h +++ b/lib/easy_lock.h @@ -27,7 +27,7 @@ #define GLOBAL_INIT_IS_THREADSAFE -#if defined(_WIN32_WINNT) && _WIN32_WINNT >= 0x600 +#ifdef _WIN32 #define curl_simple_lock SRWLOCK #define CURL_SIMPLE_LOCK_INIT SRWLOCK_INIT @@ -72,8 +72,6 @@ static CURL_INLINE void curl_simple_lock_lock(curl_simple_lock *lock) __builtin_ia32_pause(); #elif defined(__aarch64__) __asm__ volatile("yield" ::: "memory"); -#elif defined(_WIN32) - Sleep(1); #elif defined(HAVE_SCHED_YIELD) sched_yield(); #endif diff --git a/lib/ftp.c b/lib/ftp.c index b4e07106cb..71a27bc429 100644 --- a/lib/ftp.c +++ b/lib/ftp.c @@ -583,9 +583,6 @@ static CURLcode ftp_initiate_transfer(struct Curl_easy *data, size prior to the actual upload. */ Curl_pgrsSetUploadSize(data, data->state.infilesize); - /* set the SO_SNDBUF for the secondary socket for those who need it */ - Curl_sndbuf_init(data->conn->sock[SECONDARYSOCKET]); - /* FTP upload, shutdown DATA, ignore shutdown errors, as we rely * on the server response on the CONTROL connection. */ Curl_xfer_setup_send(data, SECONDARYSOCKET); diff --git a/lib/idn.c b/lib/idn.c index f055882e23..00e2fc6e4c 100644 --- a/lib/idn.c +++ b/lib/idn.c @@ -143,20 +143,6 @@ static CURLcode mac_ascii_to_idn(const char *in, char **out) #ifdef USE_WIN32_IDN /* using Windows kernel32 and normaliz libraries. */ -#if (!defined(_WIN32_WINNT) || _WIN32_WINNT < _WIN32_WINNT_VISTA) && \ - (!defined(WINVER) || WINVER < 0x600) -WINBASEAPI int WINAPI IdnToAscii(DWORD dwFlags, - const WCHAR *lpUnicodeCharStr, - int cchUnicodeChar, - WCHAR *lpASCIICharStr, - int cchASCIIChar); -WINBASEAPI int WINAPI IdnToUnicode(DWORD dwFlags, - const WCHAR *lpASCIICharStr, - int cchASCIIChar, - WCHAR *lpUnicodeCharStr, - int cchUnicodeChar); -#endif - #define IDN_MAX_LENGTH 255 static char *idn_curlx_convert_wchar_to_UTF8(const wchar_t *str_w, int chars) diff --git a/lib/rand.c b/lib/rand.c index a0b168c0ca..a02338f206 100644 --- a/lib/rand.c +++ b/lib/rand.c @@ -35,8 +35,7 @@ #ifdef _WIN32 -#if defined(_WIN32_WINNT) && _WIN32_WINNT >= _WIN32_WINNT_VISTA && \ - !defined(CURL_WINDOWS_UWP) +#ifndef CURL_WINDOWS_UWP # define HAVE_WIN_BCRYPTGENRANDOM # include # ifdef _MSC_VER diff --git a/lib/setup-win32.h b/lib/setup-win32.h index 02177a7a3b..7aada6a826 100644 --- a/lib/setup-win32.h +++ b/lib/setup-win32.h @@ -90,12 +90,6 @@ * newer symbols. */ -#ifndef _WIN32_WINNT_WINXP -#define _WIN32_WINNT_WINXP 0x0501 /* Windows XP */ -#endif -#ifndef _WIN32_WINNT_WS03 -#define _WIN32_WINNT_WS03 0x0502 /* Windows Server 2003 */ -#endif #ifndef _WIN32_WINNT_VISTA #define _WIN32_WINNT_VISTA 0x0600 /* Windows Vista */ #endif diff --git a/lib/sha256.c b/lib/sha256.c index 764e5cf16a..c042c1bb0c 100644 --- a/lib/sha256.c +++ b/lib/sha256.c @@ -181,11 +181,6 @@ struct sha256_ctx { }; typedef struct sha256_ctx my_sha256_ctx; -/* Offered when targeting Vista (XP SP2+) */ -#ifndef CALG_SHA_256 -#define CALG_SHA_256 0x0000800c -#endif - static CURLcode my_sha256_init(void *in) { my_sha256_ctx *ctx = (my_sha256_ctx *)in; diff --git a/lib/system_win32.c b/lib/system_win32.c index 0e03e7cd6f..2f24fe5c0c 100644 --- a/lib/system_win32.c +++ b/lib/system_win32.c @@ -26,20 +26,8 @@ #ifdef _WIN32 #include "system_win32.h" -#include "curlx/version_win32.h" #include "curl_sspi.h" -#ifndef HAVE_IF_NAMETOINDEX -/* Handle of iphlpapp.dll */ -static HMODULE s_hIpHlpApiDll = NULL; - -/* Pointer to the if_nametoindex function */ -IF_NAMETOINDEX_FN Curl_if_nametoindex = NULL; - -/* This is used to dynamically load DLLs */ -static HMODULE curl_load_library(LPCTSTR filename); -#endif - /* Curl_win32_init() performs Win32 global initialization */ CURLcode Curl_win32_init(long flags) { @@ -88,28 +76,6 @@ CURLcode Curl_win32_init(long flags) } #endif -#ifndef HAVE_IF_NAMETOINDEX - s_hIpHlpApiDll = curl_load_library(TEXT("iphlpapi.dll")); - if(s_hIpHlpApiDll) { - /* Get the address of the if_nametoindex function */ - IF_NAMETOINDEX_FN pIfNameToIndex = - CURLX_FUNCTION_CAST(IF_NAMETOINDEX_FN, - GetProcAddress(s_hIpHlpApiDll, "if_nametoindex")); - - if(pIfNameToIndex) - Curl_if_nametoindex = pIfNameToIndex; - } -#endif - - /* curlx_verify_windows_version must be called during init at least once - because it has its own initialization routine. */ - if(curlx_verify_windows_version(6, 0, 0, PLATFORM_WINNT, - VERSION_GREATER_THAN_EQUAL)) { - Curl_isVistaOrGreater = TRUE; - } - else - Curl_isVistaOrGreater = FALSE; - QueryPerformanceFrequency(&Curl_freq); return CURLE_OK; } @@ -117,14 +83,6 @@ CURLcode Curl_win32_init(long flags) /* Curl_win32_cleanup() is the opposite of Curl_win32_init() */ void Curl_win32_cleanup(long init_flags) { -#ifndef HAVE_IF_NAMETOINDEX - if(s_hIpHlpApiDll) { - FreeLibrary(s_hIpHlpApiDll); - s_hIpHlpApiDll = NULL; - Curl_if_nametoindex = NULL; - } -#endif - #ifdef USE_WINDOWS_SSPI Curl_sspi_global_cleanup(); #endif @@ -136,104 +94,4 @@ void Curl_win32_cleanup(long init_flags) } } -#ifndef HAVE_IF_NAMETOINDEX - -#ifndef LOAD_WITH_ALTERED_SEARCH_PATH -#define LOAD_WITH_ALTERED_SEARCH_PATH 0x00000008 -#endif - -#ifndef LOAD_LIBRARY_SEARCH_SYSTEM32 -#define LOAD_LIBRARY_SEARCH_SYSTEM32 0x00000800 -#endif - -/* We use our own typedef here since some headers might lack these */ -typedef HMODULE (APIENTRY *LOADLIBRARYEX_FN)(LPCTSTR, HANDLE, DWORD); - -/* See function definitions in winbase.h */ -#ifdef UNICODE -# define LOADLIBARYEX "LoadLibraryExW" -#else -# define LOADLIBARYEX "LoadLibraryExA" -#endif - -/* - * curl_load_library() - * - * This is used to dynamically load DLLs using the most secure method available - * for the version of Windows that we are running on. - * - * Parameters: - * - * filename [in] - The filename or full path of the DLL to load. If only the - * filename is passed then the DLL will be loaded from the - * Windows system directory. - * - * Returns the handle of the module on success; otherwise NULL. - */ -static HMODULE curl_load_library(LPCTSTR filename) -{ -#ifndef CURL_WINDOWS_UWP - HMODULE hModule = NULL; - LOADLIBRARYEX_FN pLoadLibraryEx = NULL; - - /* Get a handle to kernel32 so we can access its functions at runtime */ - HMODULE hKernel32 = GetModuleHandle(TEXT("kernel32")); - if(!hKernel32) - return NULL; - - /* Attempt to find LoadLibraryEx() which is only available on Windows 2000 - and above */ - pLoadLibraryEx = - CURLX_FUNCTION_CAST(LOADLIBRARYEX_FN, - GetProcAddress(hKernel32, LOADLIBARYEX)); - - /* Detect if there is already a path in the filename and load the library if - there is. Note: Both back slashes and forward slashes have been supported - since the earlier days of DOS at an API level although they are not - supported by command prompt */ - if(_tcspbrk(filename, TEXT("\\/"))) { - /** !checksrc! disable BANNEDFUNC 1 **/ - hModule = pLoadLibraryEx ? - pLoadLibraryEx(filename, NULL, LOAD_WITH_ALTERED_SEARCH_PATH) : - LoadLibrary(filename); - } - /* Detect if KB2533623 is installed, as LOAD_LIBRARY_SEARCH_SYSTEM32 is only - supported on Windows Vista, Windows Server 2008, Windows 7 and Windows - Server 2008 R2 with this patch or natively on Windows 8 and above */ - else if(pLoadLibraryEx && GetProcAddress(hKernel32, "AddDllDirectory")) { - /* Load the DLL from the Windows system directory */ - hModule = pLoadLibraryEx(filename, NULL, LOAD_LIBRARY_SEARCH_SYSTEM32); - } - else { - /* Attempt to get the Windows system path */ - UINT systemdirlen = GetSystemDirectory(NULL, 0); - if(systemdirlen) { - /* Allocate space for the full DLL path (Room for the null-terminator - is included in systemdirlen) */ - size_t filenamelen = _tcslen(filename); - TCHAR *path = curlx_malloc(sizeof(TCHAR) * - (systemdirlen + 1 + filenamelen)); - if(path && GetSystemDirectory(path, systemdirlen)) { - /* Calculate the full DLL path */ - _tcscpy(path + _tcslen(path), TEXT("\\")); - _tcscpy(path + _tcslen(path), filename); - - /* Load the DLL from the Windows system directory */ - /** !checksrc! disable BANNEDFUNC 1 **/ - hModule = pLoadLibraryEx ? - pLoadLibraryEx(path, NULL, LOAD_WITH_ALTERED_SEARCH_PATH) : - LoadLibrary(path); - } - curlx_free(path); - } - } - return hModule; -#else - /* the Universal Windows Platform (UWP) cannot do this */ - (void)filename; - return NULL; -#endif -} -#endif /* !HAVE_IF_NAMETOINDEX */ - #endif /* _WIN32 */ diff --git a/lib/system_win32.h b/lib/system_win32.h index c7df2a5c0d..8a51f09670 100644 --- a/lib/system_win32.h +++ b/lib/system_win32.h @@ -26,21 +26,11 @@ #include "curl_setup.h" #ifdef _WIN32 - extern LARGE_INTEGER Curl_freq; -extern bool Curl_isVistaOrGreater; CURLcode Curl_win32_init(long flags); void Curl_win32_cleanup(long init_flags); - -#ifndef HAVE_IF_NAMETOINDEX -/* We use our own typedef here since some headers might lack this */ -typedef unsigned int(WINAPI *IF_NAMETOINDEX_FN)(const char *); - -/* This is used instead of if_nametoindex if available on Windows */ -extern IF_NAMETOINDEX_FN Curl_if_nametoindex; -#endif -#else /* !_WIN32 */ +#else #define Curl_win32_init(x) CURLE_OK #endif /* _WIN32 */ diff --git a/lib/url.c b/lib/url.c index 249322eace..27533d0e0e 100644 --- a/lib/url.c +++ b/lib/url.c @@ -1675,7 +1675,7 @@ static void zonefrom_url(CURLU *uh, struct Curl_easy *data, { char *zoneid; CURLUcode uc = curl_url_get(uh, CURLUPART_ZONEID, &zoneid, 0); -#ifdef CURL_DISABLE_VERBOSE_STRINGS +#if !defined(HAVE_IF_NAMETOINDEX) || defined(CURL_DISABLE_VERBOSE_STRINGS) (void)data; #endif @@ -1687,18 +1687,9 @@ static void zonefrom_url(CURLU *uh, struct Curl_easy *data, conn->scope_id = (unsigned int)scope; #ifdef HAVE_IF_NAMETOINDEX else { -#elif defined(_WIN32) - else if(Curl_if_nametoindex) { -#endif - -#if defined(HAVE_IF_NAMETOINDEX) || defined(_WIN32) /* Zone identifier is not numeric */ unsigned int scopeidx = 0; -#ifdef HAVE_IF_NAMETOINDEX scopeidx = if_nametoindex(zoneid); -#else - scopeidx = Curl_if_nametoindex(zoneid); -#endif if(!scopeidx) { #ifndef CURL_DISABLE_VERBOSE_STRINGS char buffer[STRERROR_LEN]; @@ -1709,7 +1700,7 @@ static void zonefrom_url(CURLU *uh, struct Curl_easy *data, else conn->scope_id = scopeidx; } -#endif /* HAVE_IF_NAMETOINDEX || _WIN32 */ +#endif /* HAVE_IF_NAMETOINDEX */ curlx_free(zoneid); } diff --git a/lib/vtls/schannel.c b/lib/vtls/schannel.c index f6a711b9cf..3280fbc4af 100644 --- a/lib/vtls/schannel.c +++ b/lib/vtls/schannel.c @@ -105,11 +105,6 @@ * #define failf(x, y, ...) curl_mprintf(y, __VA_ARGS__) */ -/* Offered when targeting Vista (XP SP2+) */ -#ifndef CALG_SHA_256 -#define CALG_SHA_256 0x0000800c -#endif - /* Offered by mingw-w64 v4+. MS SDK 6.0A+. */ #ifndef PKCS12_NO_PERSIST_KEY #define PKCS12_NO_PERSIST_KEY 0x00008000 @@ -221,99 +216,48 @@ static const struct algo algs[] = { CIPHEROPTION(CALG_MAC), CIPHEROPTION(CALG_RSA_SIGN), CIPHEROPTION(CALG_DSS_SIGN), -/* ifdefs for the options that are defined conditionally in wincrypt.h */ -#ifdef CALG_NO_SIGN CIPHEROPTION(CALG_NO_SIGN), -#endif CIPHEROPTION(CALG_RSA_KEYX), CIPHEROPTION(CALG_DES), -#ifdef CALG_3DES_112 CIPHEROPTION(CALG_3DES_112), -#endif CIPHEROPTION(CALG_3DES), CIPHEROPTION(CALG_DESX), CIPHEROPTION(CALG_RC2), CIPHEROPTION(CALG_RC4), CIPHEROPTION(CALG_SEAL), -#ifdef CALG_DH_SF CIPHEROPTION(CALG_DH_SF), -#endif CIPHEROPTION(CALG_DH_EPHEM), -#ifdef CALG_AGREEDKEY_ANY CIPHEROPTION(CALG_AGREEDKEY_ANY), -#endif -#ifdef CALG_HUGHES_MD5 CIPHEROPTION(CALG_HUGHES_MD5), -#endif CIPHEROPTION(CALG_SKIPJACK), -#ifdef CALG_TEK CIPHEROPTION(CALG_TEK), -#endif CIPHEROPTION(CALG_CYLINK_MEK), /* spellchecker:disable-line */ CIPHEROPTION(CALG_SSL3_SHAMD5), -#ifdef CALG_SSL3_MASTER CIPHEROPTION(CALG_SSL3_MASTER), -#endif -#ifdef CALG_SCHANNEL_MASTER_HASH CIPHEROPTION(CALG_SCHANNEL_MASTER_HASH), -#endif -#ifdef CALG_SCHANNEL_MAC_KEY CIPHEROPTION(CALG_SCHANNEL_MAC_KEY), -#endif -#ifdef CALG_SCHANNEL_ENC_KEY CIPHEROPTION(CALG_SCHANNEL_ENC_KEY), -#endif -#ifdef CALG_PCT1_MASTER CIPHEROPTION(CALG_PCT1_MASTER), -#endif -#ifdef CALG_SSL2_MASTER CIPHEROPTION(CALG_SSL2_MASTER), -#endif -#ifdef CALG_TLS1_MASTER CIPHEROPTION(CALG_TLS1_MASTER), -#endif -#ifdef CALG_RC5 CIPHEROPTION(CALG_RC5), -#endif -#ifdef CALG_HMAC CIPHEROPTION(CALG_HMAC), -#endif -#ifdef CALG_TLS1PRF CIPHEROPTION(CALG_TLS1PRF), -#endif -#ifdef CALG_HASH_REPLACE_OWF CIPHEROPTION(CALG_HASH_REPLACE_OWF), -#endif -#ifdef CALG_AES_128 CIPHEROPTION(CALG_AES_128), -#endif -#ifdef CALG_AES_192 CIPHEROPTION(CALG_AES_192), -#endif -#ifdef CALG_AES_256 CIPHEROPTION(CALG_AES_256), -#endif -#ifdef CALG_AES CIPHEROPTION(CALG_AES), -#endif -#ifdef CALG_SHA_256 CIPHEROPTION(CALG_SHA_256), -#endif -#ifdef CALG_SHA_384 CIPHEROPTION(CALG_SHA_384), -#endif -#ifdef CALG_SHA_512 CIPHEROPTION(CALG_SHA_512), -#endif -#ifdef CALG_ECDH CIPHEROPTION(CALG_ECDH), -#endif +/* Offered by mingw-w64 v4+. MS SDK 6.0A+. */ #ifdef CALG_ECMQV CIPHEROPTION(CALG_ECMQV), #endif -#ifdef CALG_ECDSA CIPHEROPTION(CALG_ECDSA), -#endif +/* Offered by mingw-w64 v7+. MS SDK 7.0A+. */ #ifdef CALG_ECDH_EPHEM CIPHEROPTION(CALG_ECDH_EPHEM), #endif @@ -613,12 +557,8 @@ static CURLcode schannel_acquire_credential_handle(struct Curl_cfilter *cf, else pszPassword[0] = 0; - if(Curl_isVistaOrGreater) - cert_store = PFXImportCertStore(&datablob, pszPassword, - PKCS12_NO_PERSIST_KEY); - else - cert_store = PFXImportCertStore(&datablob, pszPassword, 0); - + cert_store = PFXImportCertStore(&datablob, pszPassword, + PKCS12_NO_PERSIST_KEY); curlx_free(pszPassword); } if(!blob) @@ -858,14 +798,6 @@ static CURLcode schannel_connect_step1(struct Curl_cfilter *cf, DEBUGF(infof(data, "schannel: SSL/TLS connection with %s port %d (step 1/3)", connssl->peer.hostname, connssl->peer.port)); - if(curlx_verify_windows_version(5, 1, 0, PLATFORM_WINNT, - VERSION_LESS_THAN_EQUAL)) { - /* Schannel in Windows XP (OS version 5.1) uses legacy handshakes and - algorithms that may not be supported by all servers. */ - infof(data, "schannel: Windows version is old and may not be able to " - "connect to some servers due to lack of SNI, algorithms, etc."); - } - #ifdef HAS_ALPN_SCHANNEL backend->use_alpn = connssl->alpn && s_win_has_alpn; #else diff --git a/projects/Windows/tmpl/curl.vcxproj b/projects/Windows/tmpl/curl.vcxproj index d00e0b76ab..c963f6388e 100644 --- a/projects/Windows/tmpl/curl.vcxproj +++ b/projects/Windows/tmpl/curl.vcxproj @@ -852,7 +852,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - ws2_32.lib;wldap32.lib;libcurl.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurl.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win32\$SUBDIR\$(Configuration);%(AdditionalLibraryDirectories) Console @@ -882,7 +882,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - ws2_32.lib;wldap32.lib;libcurl.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurl.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win64\$SUBDIR\$(Configuration);%(AdditionalLibraryDirectories) Console @@ -911,7 +911,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - ws2_32.lib;wldap32.lib;libcurl.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurl.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win32\$SUBDIR\$(Configuration);%(AdditionalLibraryDirectories) Console @@ -941,7 +941,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - ws2_32.lib;wldap32.lib;libcurl.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurl.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win64\$SUBDIR\$(Configuration);%(AdditionalLibraryDirectories) Console @@ -970,7 +970,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - ws2_32.lib;wldap32.lib;libcurld.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurld.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win32\$SUBDIR\$(Configuration);%(AdditionalLibraryDirectories) true @@ -1002,7 +1002,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - ws2_32.lib;wldap32.lib;libcurld.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurld.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win64\$SUBDIR\$(Configuration);%(AdditionalLibraryDirectories) true @@ -1033,7 +1033,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - ws2_32.lib;wldap32.lib;libcurld.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurld.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win32\$SUBDIR\$(Configuration);%(AdditionalLibraryDirectories) true @@ -1065,7 +1065,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - ws2_32.lib;wldap32.lib;libcurld.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurld.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win64\$SUBDIR\$(Configuration);%(AdditionalLibraryDirectories) true @@ -1096,7 +1096,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - ws2_32.lib;wldap32.lib;libcurld.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurld.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win32\$SUBDIR\$(Configuration);%(AdditionalLibraryDirectories) true @@ -1128,7 +1128,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - ws2_32.lib;wldap32.lib;libcurld.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurld.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win64\$SUBDIR\$(Configuration);%(AdditionalLibraryDirectories) true @@ -1159,7 +1159,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - ws2_32.lib;wldap32.lib;libcurld.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurld.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win32\$SUBDIR\$(Configuration);%(AdditionalLibraryDirectories) true @@ -1190,7 +1190,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - ws2_32.lib;wldap32.lib;libcurld.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurld.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win32\$SUBDIR\$(Configuration);%(AdditionalLibraryDirectories) true @@ -1222,7 +1222,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - ws2_32.lib;wldap32.lib;libcurld.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurld.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win64\$SUBDIR\$(Configuration);%(AdditionalLibraryDirectories) true @@ -1254,7 +1254,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - ws2_32.lib;wldap32.lib;libcurld.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurld.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win64\$SUBDIR\$(Configuration);%(AdditionalLibraryDirectories) true @@ -1285,7 +1285,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - ws2_32.lib;wldap32.lib;libcurl.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurl.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win32\$SUBDIR\$(Configuration);%(AdditionalLibraryDirectories) Console @@ -1315,7 +1315,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - ws2_32.lib;wldap32.lib;libcurl.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurl.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win64\$SUBDIR\$(Configuration);%(AdditionalLibraryDirectories) Console @@ -1344,7 +1344,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - ws2_32.lib;wldap32.lib;libcurl.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurl.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win32\$SUBDIR\$(Configuration);%(AdditionalLibraryDirectories) Console @@ -1373,7 +1373,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - ws2_32.lib;wldap32.lib;libcurl.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurl.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win32\$SUBDIR\$(Configuration);%(AdditionalLibraryDirectories) Console @@ -1403,7 +1403,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - ws2_32.lib;wldap32.lib;libcurl.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurl.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win64\$SUBDIR\$(Configuration);%(AdditionalLibraryDirectories) Console @@ -1433,7 +1433,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - ws2_32.lib;wldap32.lib;libcurl.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurl.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win64\$SUBDIR\$(Configuration);%(AdditionalLibraryDirectories) Console @@ -1462,7 +1462,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - ws2_32.lib;wldap32.lib;libcurld.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurld.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win32\$SUBDIR\$(Configuration);%(AdditionalLibraryDirectories) true @@ -1494,7 +1494,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - ws2_32.lib;wldap32.lib;libcurld.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurld.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win64\$SUBDIR\$(Configuration);%(AdditionalLibraryDirectories) true @@ -1525,7 +1525,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - ws2_32.lib;wldap32.lib;libcurl.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurl.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win32\$SUBDIR\$(Configuration);%(AdditionalLibraryDirectories) Console @@ -1555,7 +1555,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - ws2_32.lib;wldap32.lib;libcurl.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurl.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win64\$SUBDIR\$(Configuration);%(AdditionalLibraryDirectories) Console @@ -1584,7 +1584,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - secur32.lib;crypt32.lib;ws2_32.lib;wldap32.lib;libcurld.lib;libcrypto.lib;libssl.lib;%(AdditionalDependencies) + secur32.lib;crypt32.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurld.lib;libcrypto.lib;libssl.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win32\$SUBDIR\$(Configuration);..\..\..\..\..\openssl\build\Win32\$SUBDIR\LIB Debug;%(AdditionalLibraryDirectories) true @@ -1616,7 +1616,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - secur32.lib;crypt32.lib;ws2_32.lib;wldap32.lib;libcurld.lib;libcrypto.lib;libssl.lib;%(AdditionalDependencies) + secur32.lib;crypt32.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurld.lib;libcrypto.lib;libssl.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win64\$SUBDIR\$(Configuration);..\..\..\..\..\openssl\build\Win64\$SUBDIR\LIB Debug;%(AdditionalLibraryDirectories) true @@ -1647,7 +1647,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - secur32.lib;crypt32.lib;ws2_32.lib;wldap32.lib;libcurl.lib;libcrypto.lib;libssl.lib;%(AdditionalDependencies) + secur32.lib;crypt32.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurl.lib;libcrypto.lib;libssl.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win32\$SUBDIR\$(Configuration);..\..\..\..\..\openssl\build\Win32\$SUBDIR\LIB Release;%(AdditionalLibraryDirectories) Console @@ -1677,7 +1677,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - secur32.lib;crypt32.lib;ws2_32.lib;wldap32.lib;libcurl.lib;libcrypto.lib;libssl.lib;%(AdditionalDependencies) + secur32.lib;crypt32.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurl.lib;libcrypto.lib;libssl.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win64\$SUBDIR\$(Configuration);..\..\..\..\..\openssl\build\Win64\$SUBDIR\LIB Release;%(AdditionalLibraryDirectories) Console @@ -1706,7 +1706,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - secur32.lib;crypt32.lib;ws2_32.lib;wldap32.lib;libcurld.lib;libcrypto.lib;libssl.lib;libssh2d.lib;%(AdditionalDependencies) + secur32.lib;crypt32.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurld.lib;libcrypto.lib;libssl.lib;libssh2d.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win32\$SUBDIR\$(Configuration);..\..\..\..\..\openssl\build\Win32\$SUBDIR\LIB Debug;..\..\..\..\..\libssh2\build\Win32\$SUBDIR\LIB Debug;%(AdditionalLibraryDirectories) true @@ -1738,7 +1738,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - secur32.lib;crypt32.lib;ws2_32.lib;wldap32.lib;libcurld.lib;libcrypto.lib;libssl.lib;libssh2d.lib;%(AdditionalDependencies) + secur32.lib;crypt32.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurld.lib;libcrypto.lib;libssl.lib;libssh2d.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win64\$SUBDIR\$(Configuration);..\..\..\..\..\openssl\build\Win64\$SUBDIR\LIB Debug;..\..\..\..\..\libssh2\build\Win64\$SUBDIR\LIB Debug;%(AdditionalLibraryDirectories) true @@ -1769,7 +1769,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - secur32.lib;crypt32.lib;ws2_32.lib;wldap32.lib;libcurl.lib;libcrypto.lib;libssl.lib;libssh2.lib;%(AdditionalDependencies) + secur32.lib;crypt32.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurl.lib;libcrypto.lib;libssl.lib;libssh2.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win32\$SUBDIR\$(Configuration);..\..\..\..\..\openssl\build\Win32\$SUBDIR\LIB Release;..\..\..\..\..\libssh2\build\Win32\$SUBDIR\LIB Release;%(AdditionalLibraryDirectories) Console @@ -1799,7 +1799,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - secur32.lib;crypt32.lib;ws2_32.lib;wldap32.lib;libcurl.lib;libcrypto.lib;libssl.lib;libssh2.lib;%(AdditionalDependencies) + secur32.lib;crypt32.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurl.lib;libcrypto.lib;libssl.lib;libssh2.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win64\$SUBDIR\$(Configuration);..\..\..\..\..\openssl\build\Win64\$SUBDIR\LIB Release;..\..\..\..\..\libssh2\build\Win64\$SUBDIR\LIB Release;%(AdditionalLibraryDirectories) Console @@ -1828,7 +1828,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - secur32.lib;crypt32.lib;ws2_32.lib;wldap32.lib;libcurld.lib;libcrypto.lib;libssl.lib;%(AdditionalDependencies) + secur32.lib;crypt32.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurld.lib;libcrypto.lib;libssl.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win32\$SUBDIR\$(Configuration);..\..\..\..\..\openssl\build\Win32\$SUBDIR\DLL Debug;%(AdditionalLibraryDirectories) true @@ -1860,7 +1860,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - secur32.lib;crypt32.lib;ws2_32.lib;wldap32.lib;libcurld.lib;libcrypto.lib;libssl.lib;%(AdditionalDependencies) + secur32.lib;crypt32.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurld.lib;libcrypto.lib;libssl.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win64\$SUBDIR\$(Configuration);..\..\..\..\..\openssl\build\Win64\$SUBDIR\DLL Debug;%(AdditionalLibraryDirectories) true @@ -1891,7 +1891,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - secur32.lib;crypt32.lib;ws2_32.lib;wldap32.lib;libcurl.lib;libcrypto.lib;libssl.lib;%(AdditionalDependencies) + secur32.lib;crypt32.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurl.lib;libcrypto.lib;libssl.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win32\$SUBDIR\$(Configuration);..\..\..\..\..\openssl\build\Win32\$SUBDIR\DLL Release;%(AdditionalLibraryDirectories) Console @@ -1921,7 +1921,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - secur32.lib;crypt32.lib;ws2_32.lib;wldap32.lib;libcurl.lib;libcrypto.lib;libssl.lib;%(AdditionalDependencies) + secur32.lib;crypt32.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurl.lib;libcrypto.lib;libssl.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win64\$SUBDIR\$(Configuration);..\..\..\..\..\openssl\build\Win64\$SUBDIR\DLL Release;%(AdditionalLibraryDirectories) Console @@ -1950,7 +1950,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - secur32.lib;crypt32.lib;ws2_32.lib;wldap32.lib;libcurld.lib;libcrypto.lib;libssl.lib;libssh2d.lib;%(AdditionalDependencies) + secur32.lib;crypt32.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurld.lib;libcrypto.lib;libssl.lib;libssh2d.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win32\$SUBDIR\$(Configuration);..\..\..\..\..\openssl\build\Win32\$SUBDIR\DLL Debug;..\..\..\..\..\libssh2\build\Win32\$SUBDIR\DLL Debug;%(AdditionalLibraryDirectories) true @@ -1982,7 +1982,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - secur32.lib;crypt32.lib;ws2_32.lib;wldap32.lib;libcurld.lib;libcrypto.lib;libssl.lib;libssh2d.lib;%(AdditionalDependencies) + secur32.lib;crypt32.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurld.lib;libcrypto.lib;libssl.lib;libssh2d.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win64\$SUBDIR\$(Configuration);..\..\..\..\..\openssl\build\Win64\$SUBDIR\DLL Debug;..\..\..\..\..\libssh2\build\Win64\$SUBDIR\DLL Debug;%(AdditionalLibraryDirectories) true @@ -2013,7 +2013,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - secur32.lib;crypt32.lib;ws2_32.lib;wldap32.lib;libcurl.lib;libcrypto.lib;libssl.lib;libssh2.lib;%(AdditionalDependencies) + secur32.lib;crypt32.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurl.lib;libcrypto.lib;libssl.lib;libssh2.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win32\$SUBDIR\$(Configuration);..\..\..\..\..\openssl\build\Win32\$SUBDIR\DLL Release;..\..\..\..\..\libssh2\build\Win32\$SUBDIR\DLL Release;%(AdditionalLibraryDirectories) Console @@ -2043,7 +2043,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - secur32.lib;crypt32.lib;ws2_32.lib;wldap32.lib;libcurl.lib;libssh2.lib;libcrypto.lib;libssl.lib;%(AdditionalDependencies) + secur32.lib;crypt32.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;libcurl.lib;libssh2.lib;libcrypto.lib;libssl.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win64\$SUBDIR\$(Configuration);..\..\..\..\..\openssl\build\Win64\$SUBDIR\DLL Release;..\..\..\..\..\libssh2\build\Win64\$SUBDIR\DLL Release;%(AdditionalLibraryDirectories) Console @@ -2072,7 +2072,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - ws2_32.lib;wldap32.lib;secur32.lib;crypt32.lib;libcurld.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;secur32.lib;crypt32.lib;libcurld.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win32\$SUBDIR\$(Configuration);%(AdditionalLibraryDirectories) true @@ -2103,7 +2103,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - ws2_32.lib;wldap32.lib;secur32.lib;crypt32.lib;normaliz.lib;libcurld.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;secur32.lib;crypt32.lib;normaliz.lib;libcurld.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win32\$SUBDIR\$(Configuration);%(AdditionalLibraryDirectories) true @@ -2135,7 +2135,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - ws2_32.lib;wldap32.lib;secur32.lib;crypt32.lib;libcurld.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;secur32.lib;crypt32.lib;libcurld.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win64\$SUBDIR\$(Configuration);%(AdditionalLibraryDirectories) true @@ -2167,7 +2167,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - ws2_32.lib;wldap32.lib;secur32.lib;crypt32.lib;normaliz.lib;libcurld.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;secur32.lib;crypt32.lib;normaliz.lib;libcurld.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win64\$SUBDIR\$(Configuration);%(AdditionalLibraryDirectories) true @@ -2198,7 +2198,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - ws2_32.lib;wldap32.lib;secur32.lib;crypt32.lib;libcurl.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;secur32.lib;crypt32.lib;libcurl.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win32\$SUBDIR\$(Configuration);%(AdditionalLibraryDirectories) Console @@ -2227,7 +2227,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - ws2_32.lib;wldap32.lib;secur32.lib;crypt32.lib;normaliz.lib;libcurl.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;secur32.lib;crypt32.lib;normaliz.lib;libcurl.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win32\$SUBDIR\$(Configuration);%(AdditionalLibraryDirectories) Console @@ -2257,7 +2257,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - ws2_32.lib;wldap32.lib;secur32.lib;crypt32.lib;libcurl.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;secur32.lib;crypt32.lib;libcurl.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win64\$SUBDIR\$(Configuration);%(AdditionalLibraryDirectories) Console @@ -2287,7 +2287,7 @@ ..\..\..\..\include;%(AdditionalIncludeDirectories) - ws2_32.lib;wldap32.lib;secur32.lib;crypt32.lib;normaliz.lib;libcurl.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;secur32.lib;crypt32.lib;normaliz.lib;libcurl.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\build\Win64\$SUBDIR\$(Configuration);%(AdditionalLibraryDirectories) Console diff --git a/projects/Windows/tmpl/libcurl.vcxproj b/projects/Windows/tmpl/libcurl.vcxproj index f66765ca9a..dba1af6035 100644 --- a/projects/Windows/tmpl/libcurl.vcxproj +++ b/projects/Windows/tmpl/libcurl.vcxproj @@ -802,7 +802,7 @@ 0x0409 - ws2_32.lib;wldap32.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) %(AdditionalLibraryDirectories) $(IntDir)$(TargetFileName).intermediate.manifest @@ -836,7 +836,7 @@ 0x0409 - ws2_32.lib;wldap32.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) %(AdditionalLibraryDirectories) true @@ -869,7 +869,7 @@ 0x0409 - ws2_32.lib;wldap32.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) %(AdditionalLibraryDirectories) $(IntDir)$(TargetFileName).intermediate.manifest @@ -901,7 +901,7 @@ 0x0409 - ws2_32.lib;wldap32.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) %(AdditionalLibraryDirectories) $(TargetDir)$(TargetName).lib @@ -1018,7 +1018,7 @@ 0x0409 - secur32.lib;crypt32.lib;ws2_32.lib;wldap32.lib;libcrypto.lib;libssl.lib;%(AdditionalDependencies) + secur32.lib;crypt32.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;libcrypto.lib;libssl.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\..\openssl\build\Win32\$SUBDIR\DLL Debug;%(AdditionalLibraryDirectories) $(IntDir)$(TargetFileName).intermediate.manifest @@ -1052,7 +1052,7 @@ 0x0409 - secur32.lib;crypt32.lib;ws2_32.lib;wldap32.lib;libcrypto.lib;libssl.lib;%(AdditionalDependencies) + secur32.lib;crypt32.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;libcrypto.lib;libssl.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\..\openssl\build\Win64\$SUBDIR\DLL Debug;%(AdditionalLibraryDirectories) true @@ -1085,7 +1085,7 @@ 0x0409 - secur32.lib;crypt32.lib;ws2_32.lib;wldap32.lib;libcrypto.lib;libssl.lib;%(AdditionalDependencies) + secur32.lib;crypt32.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;libcrypto.lib;libssl.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\..\openssl\build\Win32\$SUBDIR\DLL Release;%(AdditionalLibraryDirectories) $(IntDir)$(TargetFileName).intermediate.manifest @@ -1117,7 +1117,7 @@ 0x0409 - secur32.lib;crypt32.lib;ws2_32.lib;wldap32.lib;libcrypto.lib;libssl.lib;%(AdditionalDependencies) + secur32.lib;crypt32.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;libcrypto.lib;libssl.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\..\openssl\build\Win64\$SUBDIR\DLL Release;%(AdditionalLibraryDirectories) $(TargetDir)$(TargetName).lib @@ -1148,7 +1148,7 @@ 0x0409 - ws2_32.lib;wldap32.lib;secur32.lib;crypt32.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;secur32.lib;crypt32.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) %(AdditionalLibraryDirectories) $(IntDir)$(TargetFileName).intermediate.manifest @@ -1182,7 +1182,7 @@ 0x0409 - ws2_32.lib;wldap32.lib;secur32.lib;crypt32.lib;normaliz.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;secur32.lib;crypt32.lib;normaliz.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) %(AdditionalLibraryDirectories) $(IntDir)$(TargetFileName).intermediate.manifest @@ -1216,7 +1216,7 @@ 0x0409 - ws2_32.lib;wldap32.lib;secur32.lib;crypt32.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;secur32.lib;crypt32.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) %(AdditionalLibraryDirectories) true @@ -1249,7 +1249,7 @@ 0x0409 - ws2_32.lib;wldap32.lib;secur32.lib;crypt32.lib;normaliz.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;secur32.lib;crypt32.lib;normaliz.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) %(AdditionalLibraryDirectories) true @@ -1282,7 +1282,7 @@ 0x0409 - ws2_32.lib;wldap32.lib;secur32.lib;crypt32.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;secur32.lib;crypt32.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) %(AdditionalLibraryDirectories) $(IntDir)$(TargetFileName).intermediate.manifest @@ -1314,7 +1314,7 @@ 0x0409 - ws2_32.lib;wldap32.lib;secur32.lib;crypt32.lib;normaliz.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;secur32.lib;crypt32.lib;normaliz.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) %(AdditionalLibraryDirectories) $(IntDir)$(TargetFileName).intermediate.manifest @@ -1346,7 +1346,7 @@ 0x0409 - ws2_32.lib;wldap32.lib;secur32.lib;crypt32.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;secur32.lib;crypt32.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) %(AdditionalLibraryDirectories) $(TargetDir)$(TargetName).lib @@ -1377,7 +1377,7 @@ 0x0409 - ws2_32.lib;wldap32.lib;secur32.lib;crypt32.lib;normaliz.lib;%(AdditionalDependencies) + ws2_32.lib;iphlpapi.lib;wldap32.lib;secur32.lib;crypt32.lib;normaliz.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) %(AdditionalLibraryDirectories) $(TargetDir)$(TargetName).lib @@ -1408,7 +1408,7 @@ 0x0409 - secur32.lib;crypt32.lib;ws2_32.lib;wldap32.lib;libcrypto.lib;libssl.lib;libssh2d.lib;%(AdditionalDependencies) + secur32.lib;crypt32.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;libcrypto.lib;libssl.lib;libssh2d.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\..\openssl\build\Win32\$SUBDIR\DLL Debug;..\..\..\..\..\libssh2\build\Win32\$SUBDIR\DLL Debug;%(AdditionalLibraryDirectories) $(IntDir)$(TargetFileName).intermediate.manifest @@ -1442,7 +1442,7 @@ 0x0409 - secur32.lib;crypt32.lib;ws2_32.lib;wldap32.lib;libcrypto.lib;libssl.lib;libssh2d.lib;%(AdditionalDependencies) + secur32.lib;crypt32.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;libcrypto.lib;libssl.lib;libssh2d.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\..\openssl\build\Win64\$SUBDIR\DLL Debug;..\..\..\..\..\libssh2\build\Win64\$SUBDIR\DLL Debug;%(AdditionalLibraryDirectories) true @@ -1475,7 +1475,7 @@ 0x0409 - secur32.lib;crypt32.lib;ws2_32.lib;wldap32.lib;libcrypto.lib;libssl.lib;libssh2.lib;%(AdditionalDependencies) + secur32.lib;crypt32.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;libcrypto.lib;libssl.lib;libssh2.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\..\openssl\build\Win32\$SUBDIR\DLL Release;..\..\..\..\..\libssh2\build\Win32\$SUBDIR\DLL Release;%(AdditionalLibraryDirectories) $(IntDir)$(TargetFileName).intermediate.manifest @@ -1507,7 +1507,7 @@ 0x0409 - secur32.lib;crypt32.lib;ws2_32.lib;wldap32.lib;libcrypto.lib;libssl.lib;libssh2.lib;%(AdditionalDependencies) + secur32.lib;crypt32.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;libcrypto.lib;libssl.lib;libssh2.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) ..\..\..\..\..\openssl\build\Win64\$SUBDIR\DLL Release;..\..\..\..\..\libssh2\build\Win64\$SUBDIR\DLL Release;%(AdditionalLibraryDirectories) $(TargetDir)$(TargetName).lib