diff --git a/Sources/FoundationNetworking/URLSession/libcurl/EasyHandle.swift b/Sources/FoundationNetworking/URLSession/libcurl/EasyHandle.swift index cdf8875fce..e9b90a23f1 100644 --- a/Sources/FoundationNetworking/URLSession/libcurl/EasyHandle.swift +++ b/Sources/FoundationNetworking/URLSession/libcurl/EasyHandle.swift @@ -29,15 +29,15 @@ import Dispatch // These helper functions avoid warnings about "will never be executed" code which checks the availability of the underlying libcurl features. internal func curlInfoCAInfoSupported() -> Bool { - NS_CURL_CURLINFO_CAINFO_SUPPORTED == 1 + CFURLSessionInfoCAINFO.value != CFURLSessionInfoNONE.value } internal func maxHostConnectionsSupported() -> Bool { - NS_CURL_MAX_HOST_CONNECTIONS_SUPPORTED == 1 + CFURLSessionMultiOptionMAX_HOST_CONNECTIONS.value != 0 } internal func xferInfoFunctionSupported() -> Bool { - NS_CURL_XFERINFOFUNCTION_SUPPORTED == 1 + CFURLSessionOptionXFERINFOFUNCTION.value != 0 } /// Minimal wrapper around the [curl easy interface](https://curl.haxx.se/libcurl/c/) diff --git a/Sources/_CFURLSessionInterface/CFURLSessionInterface.c b/Sources/_CFURLSessionInterface/CFURLSessionInterface.c index e493ad77e8..327397fe78 100644 --- a/Sources/_CFURLSessionInterface/CFURLSessionInterface.c +++ b/Sources/_CFURLSessionInterface/CFURLSessionInterface.c @@ -23,6 +23,31 @@ #include "CFString.h" #include +#if !defined(LIBCURL_VERSION_MAJOR) +#error "LIBCURL_VERSION_MAJOR not defined, missing curlver.h" +#endif + +// 7.84.0 or later +#if LIBCURL_VERSION_MAJOR > 7 || (LIBCURL_VERSION_MAJOR == 7 && LIBCURL_VERSION_MINOR > 84) || (LIBCURL_VERSION_MAJOR == 7 && LIBCURL_VERSION_MINOR == 84 && LIBCURL_VERSION_PATCH >= 0) +#define NS_CURL_CURLINFO_CAINFO_SUPPORTED 1 +#else +#define NS_CURL_CURLINFO_CAINFO_SUPPORTED 0 +#endif + +// 7.30.0 or later +#if LIBCURL_VERSION_MAJOR > 7 || (LIBCURL_VERSION_MAJOR == 7 && LIBCURL_VERSION_MINOR > 30) || (LIBCURL_VERSION_MAJOR == 7 && LIBCURL_VERSION_MINOR == 30 && LIBCURL_VERSION_PATCH >= 0) +#define NS_CURL_MAX_HOST_CONNECTIONS_SUPPORTED 1 +#else +#define NS_CURL_MAX_HOST_CONNECTIONS_SUPPORTED 0 +#endif + +// 7.32.0 or later +#if LIBCURL_VERSION_MAJOR > 7 || (LIBCURL_VERSION_MAJOR == 7 && LIBCURL_VERSION_MINOR > 32) || (LIBCURL_VERSION_MAJOR == 7 && LIBCURL_VERSION_MINOR == 32 && LIBCURL_VERSION_PATCH >= 0) +#define NS_CURL_XFERINFOFUNCTION_SUPPORTED 1 +#else +#define NS_CURL_XFERINFOFUNCTION_SUPPORTED 0 +#endif + FILE* aa = NULL; CURL * gcurl = NULL; @@ -223,7 +248,7 @@ CFURLSessionEasyCode const CFURLSessionEasyCodeFTP_COULDNT_RETR_FILE = { CURLE_F #if LIBCURL_VERSION_MAJOR > 7 || (LIBCURL_VERSION_MAJOR == 7 && LIBCURL_VERSION_MINOR > 67) || (LIBCURL_VERSION_MAJOR == 7 && LIBCURL_VERSION_MINOR == 67 && LIBCURL_VERSION_PATCH >= 1) CFURLSessionEasyCode const CFURLSessionEasyCodeHTTP3 = { CURLE_HTTP3 }; #else -CFURLSessionEasyCode const CFURLSessionEasyCodeOBSOLETE20 = { CURLE_OBSOLETE20 }; +CFURLSessionEasyCode const CFURLSessionEasyCodeHTTP3 = { CURLE_OBSOLETE20 }; #endif CFURLSessionEasyCode const CFURLSessionEasyCodeQUOTE_ERROR = { CURLE_QUOTE_ERROR }; CFURLSessionEasyCode const CFURLSessionEasyCodeHTTP_RETURNED_ERROR = { CURLE_HTTP_RETURNED_ERROR }; diff --git a/Sources/_CFURLSessionInterface/include/CFURLSessionInterface.h b/Sources/_CFURLSessionInterface/include/CFURLSessionInterface.h index 64c3495543..c6ca3766be 100644 --- a/Sources/_CFURLSessionInterface/include/CFURLSessionInterface.h +++ b/Sources/_CFURLSessionInterface/include/CFURLSessionInterface.h @@ -35,26 +35,6 @@ #include #endif -// 7.84.0 or later -#if LIBCURL_VERSION_MAJOR > 7 || (LIBCURL_VERSION_MAJOR == 7 && LIBCURL_VERSION_MINOR > 84) || (LIBCURL_VERSION_MAJOR == 7 && LIBCURL_VERSION_MINOR == 84 && LIBCURL_VERSION_PATCH >= 0) -#define NS_CURL_CURLINFO_CAINFO_SUPPORTED 1 -#else -#define NS_CURL_CURLINFO_CAINFO_SUPPORTED 0 -#endif - -// 7.30.0 or later -#if LIBCURL_VERSION_MAJOR > 7 || (LIBCURL_VERSION_MAJOR == 7 && LIBCURL_VERSION_MINOR > 30) || (LIBCURL_VERSION_MAJOR == 7 && LIBCURL_VERSION_MINOR == 30 && LIBCURL_VERSION_PATCH >= 0) -#define NS_CURL_MAX_HOST_CONNECTIONS_SUPPORTED 1 -#else -#define NS_CURL_MAX_HOST_CONNECTIONS_SUPPORTED 0 -#endif - -// 7.32.0 or later -#if LIBCURL_VERSION_MAJOR > 7 || (LIBCURL_VERSION_MAJOR == 7 && LIBCURL_VERSION_MINOR > 32) || (LIBCURL_VERSION_MAJOR == 7 && LIBCURL_VERSION_MINOR == 32 && LIBCURL_VERSION_PATCH >= 0) -#define NS_CURL_XFERINFOFUNCTION_SUPPORTED 1 -#else -#define NS_CURL_XFERINFOFUNCTION_SUPPORTED 0 -#endif CF_IMPLICIT_BRIDGING_ENABLED CF_EXTERN_C_BEGIN @@ -104,11 +84,7 @@ CF_EXPORT CFURLSessionEasyCode const CFURLSessionEasyCodeFTP_CANT_GET_HOST; // C CF_EXPORT CFURLSessionEasyCode const CFURLSessionEasyCodeFTP_COULDNT_SET_TYPE; // CURLE_FTP_COULDNT_SET_TYPE CF_EXPORT CFURLSessionEasyCode const CFURLSessionEasyCodePARTIAL_FILE; // CURLE_PARTIAL_FILE CF_EXPORT CFURLSessionEasyCode const CFURLSessionEasyCodeFTP_COULDNT_RETR_FILE; // CURLE_FTP_COULDNT_RETR_FILE -#if LIBCURL_VERSION_MAJOR > 7 || (LIBCURL_VERSION_MAJOR == 7 && LIBCURL_VERSION_MINOR > 67) || (LIBCURL_VERSION_MAJOR == 7 && LIBCURL_VERSION_MINOR == 67 && LIBCURL_VERSION_PATCH >= 1) -CF_EXPORT CFURLSessionEasyCode const CFURLSessionEasyCodeHTTP3; // CURLE_HTTP3 -#else -CF_EXPORT CFURLSessionEasyCode const CFURLSessionEasyCodeOBSOLETE20; // CURLE_OBSOLETE20 -#endif +CF_EXPORT CFURLSessionEasyCode const CFURLSessionEasyCodeHTTP3; // CURLE_HTTP3 || CURLE_OBSOLETE20 CF_EXPORT CFURLSessionEasyCode const CFURLSessionEasyCodeQUOTE_ERROR; // CURLE_QUOTE_ERROR CF_EXPORT CFURLSessionEasyCode const CFURLSessionEasyCodeHTTP_RETURNED_ERROR; // CURLE_HTTP_RETURNED_ERROR CF_EXPORT CFURLSessionEasyCode const CFURLSessionEasyCodeWRITE_ERROR; // CURLE_WRITE_ERROR