From fee6760e6408ffa56736123d7b422d1e854c0bf0 Mon Sep 17 00:00:00 2001 From: Ayesh Karunaratne Date: Sat, 27 Jan 2024 22:05:11 +0700 Subject: [PATCH 1/2] ext/curl: Bump minimim Curl version to >= 7.61.0 Bumps the minimum required libcurl version to 7.61.0. Please also see #4917, which bumped minimum libcurl version to the current >= 7.29.0. This bumps the minimum requirement to Curl 7.61.0 (released 2018 Sept). Ubuntu, Debian, RHEL, and RHEL derivatives have major and LTS version bumps this year. Following are the libcurl-dev/libcurl-devel versions available in the oldest supported (LTS or otherwise) in major OSs. - Debian buster: [7.64](https://packages.debian.org/buster/libcurl4-openssl-dev) - Ubuntu 20.04: [7.68](https://packages.ubuntu.com/focal/libcurl-dev) - CentOS/RHEL 7: 7.29 - RHEL 8/Rocky 8/EL 8: 7.61 - Fedora 38: 7.87 RHEL/CentOS 7 reaches EOL mid 2024, so for PHP 8.4 scheduled towards the end of this year, we can safely bump the minimum libcurl version. 7.61.0 was selected as the new minimum because RHEL and derivatives have libcurl-devel version 7.61. RHEL 8 is a current and supported RHEL version. --- NEWS | 1 + UPGRADING | 3 + ext/curl/config.m4 | 2 +- ext/curl/curl.stub.php | 68 ------ ext/curl/curl_arginfo.h | 248 +------------------- ext/curl/curl_private.h | 5 - ext/curl/interface.c | 211 +---------------- ext/curl/multi.c | 7 - ext/curl/sync-constants.php | 2 +- ext/curl/tests/curl_basic_023.phpt | 6 - ext/curl/tests/curl_basic_024.phpt | 6 - ext/curl/tests/curl_file_upload_stream.phpt | 4 - 12 files changed, 9 insertions(+), 554 deletions(-) diff --git a/NEWS b/NEWS index cbcdcc7ac2569..e6d784d935d52 100644 --- a/NEWS +++ b/NEWS @@ -14,6 +14,7 @@ Core: Curl: . Deprecated the CURLOPT_BINARYTRANSFER constant. (divinity76) + . Bumped required libcurl version to 7.61.0. (Ayesh) Date: . Added DateTime[Immutable]::createFromTimestamp. (Marc Bennewitz) diff --git a/UPGRADING b/UPGRADING index 752724bfe1ce7..745182d66be3f 100644 --- a/UPGRADING +++ b/UPGRADING @@ -392,6 +392,9 @@ PDO_SQLITE: 9. Other Changes to Extensions ======================================== +- Curl: + . The Curl extension now requires at least libcurl 7.61.0. + - Intl: . The class constants are typed now. diff --git a/ext/curl/config.m4 b/ext/curl/config.m4 index 3b11739654bd6..cec9d242a7733 100644 --- a/ext/curl/config.m4 +++ b/ext/curl/config.m4 @@ -4,7 +4,7 @@ PHP_ARG_WITH([curl], [Include cURL support])]) if test "$PHP_CURL" != "no"; then - PKG_CHECK_MODULES([CURL], [libcurl >= 7.29.0]) + PKG_CHECK_MODULES([CURL], [libcurl >= 7.61.0]) PKG_CHECK_VAR([CURL_FEATURES], [libcurl], [supported_features]) PHP_EVAL_LIBLINE($CURL_LIBS, CURL_SHARED_LIBADD) diff --git a/ext/curl/curl.stub.php b/ext/curl/curl.stub.php index 1726d4b50736d..5709a404afe97 100644 --- a/ext/curl/curl.stub.php +++ b/ext/curl/curl.stub.php @@ -472,13 +472,11 @@ * @cvalue CURLOPT_WRITEHEADER */ const CURLOPT_WRITEHEADER = UNKNOWN; -#if LIBCURL_VERSION_NUM >= 0x072000 /** * @var int * @cvalue CURLOPT_XFERINFOFUNCTION */ const CURLOPT_XFERINFOFUNCTION = UNKNOWN; -#endif /* */ /** @@ -776,13 +774,11 @@ * @cvalue CURLE_SSL_PEER_CERTIFICATE */ const CURLE_SSL_PEER_CERTIFICATE = UNKNOWN; -#if LIBCURL_VERSION_NUM >= 0x072700 /* Available since 7.39.0 */ /** * @var int * @cvalue CURLE_SSL_PINNEDPUBKEYNOTMATCH */ const CURLE_SSL_PINNEDPUBKEYNOTMATCH = UNKNOWN; -#endif /** * @var int * @cvalue CURLE_TELNET_OPTION_SYNTAX @@ -998,13 +994,11 @@ * @cvalue CURLM_OUT_OF_MEMORY */ const CURLM_OUT_OF_MEMORY = UNKNOWN; -#if LIBCURL_VERSION_NUM >= 0x072001 /* Available since 7.32.1 */ /** * @var int * @cvalue CURLM_ADDED_ALREADY */ const CURLM_ADDED_ALREADY = UNKNOWN; -#endif /* Curl proxy constants */ /** @@ -2385,7 +2379,6 @@ */ const CURLSSH_AUTH_AGENT = UNKNOWN; -#if LIBCURL_VERSION_NUM >= 0x071e00 /* Available since 7.30.0 */ /** * @var int * @cvalue CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE @@ -2411,17 +2404,13 @@ * @cvalue CURLMOPT_MAX_TOTAL_CONNECTIONS */ const CURLMOPT_MAX_TOTAL_CONNECTIONS = UNKNOWN; -#endif -#if LIBCURL_VERSION_NUM >= 0x071f00 /* Available since 7.31.0 */ /** * @var int * @cvalue CURLOPT_SASL_IR */ const CURLOPT_SASL_IR = UNKNOWN; -#endif -#if LIBCURL_VERSION_NUM >= 0x072100 /* Available since 7.33.0 */ /** * @var int * @cvalue CURLOPT_DNS_INTERFACE @@ -2453,9 +2442,7 @@ * @cvalue CURL_VERSION_HTTP2 */ const CURL_VERSION_HTTP2 = UNKNOWN; -#endif -#if LIBCURL_VERSION_NUM >= 0x072200 /* Available since 7.34.0 */ /** * @var int * @cvalue CURLOPT_LOGIN_OPTIONS @@ -2477,9 +2464,7 @@ * @cvalue CURL_SSLVERSION_TLSv1_2 */ const CURL_SSLVERSION_TLSv1_2 = UNKNOWN; -#endif -#if LIBCURL_VERSION_NUM >= 0x072400 /* Available since 7.36.0 */ /** * @var int * @cvalue CURLOPT_EXPECT_100_TIMEOUT_MS @@ -2495,9 +2480,7 @@ * @cvalue CURLOPT_SSL_ENABLE_NPN */ const CURLOPT_SSL_ENABLE_NPN = UNKNOWN; -#endif -#if LIBCURL_VERSION_NUM >= 0x072500 /* Available since 7.37.0 */ /** * @var int * @cvalue CURLHEADER_SEPARATE @@ -2518,9 +2501,7 @@ * @cvalue CURLOPT_PROXYHEADER */ const CURLOPT_PROXYHEADER = UNKNOWN; -#endif -#if LIBCURL_VERSION_NUM >= 0x072600 /* Available since 7.38.0 */ /** * @var int * @cvalue CURLAUTH_NEGOTIATE @@ -2531,17 +2512,13 @@ * @cvalue CURL_VERSION_GSSAPI */ const CURL_VERSION_GSSAPI = UNKNOWN; -#endif -#if LIBCURL_VERSION_NUM >= 0x072700 /* Available since 7.39.0 */ /** * @var int * @cvalue CURLOPT_PINNEDPUBLICKEY */ const CURLOPT_PINNEDPUBLICKEY = UNKNOWN; -#endif -#if LIBCURL_VERSION_NUM >= 0x072800 /* Available since 7.40.0 */ /** * @var int * @cvalue CURLOPT_UNIX_SOCKET_PATH @@ -2567,17 +2544,13 @@ * @cvalue CURL_VERSION_UNIX_SOCKETS */ const CURL_VERSION_UNIX_SOCKETS = UNKNOWN; -#endif -#if LIBCURL_VERSION_NUM >= 0x072900 /* Available since 7.41.0 */ /** * @var int * @cvalue CURLOPT_SSL_VERIFYSTATUS */ const CURLOPT_SSL_VERIFYSTATUS = UNKNOWN; -#endif -#if LIBCURL_VERSION_NUM >= 0x072a00 /* Available since 7.42.0 */ /** * @var int * @cvalue CURLOPT_PATH_AS_IS @@ -2588,9 +2561,7 @@ * @cvalue CURLOPT_SSL_FALSESTART */ const CURLOPT_SSL_FALSESTART = UNKNOWN; -#endif -#if LIBCURL_VERSION_NUM >= 0x072b00 /* Available since 7.43.0 */ /** * @var int * @cvalue CURL_HTTP_VERSION_2 @@ -2628,25 +2599,19 @@ * @cvalue CURLPIPE_MULTIPLEX */ const CURLPIPE_MULTIPLEX = UNKNOWN; -#endif -#if LIBCURL_VERSION_NUM >= 0x072c00 /* Available since 7.44.0 */ /** * @var int * @cvalue CURLSSLOPT_NO_REVOKE */ const CURLSSLOPT_NO_REVOKE = UNKNOWN; -#endif -#if LIBCURL_VERSION_NUM >= 0x072d00 /* Available since 7.45.0 */ /** * @var int * @cvalue CURLOPT_DEFAULT_PROTOCOL */ const CURLOPT_DEFAULT_PROTOCOL = UNKNOWN; -#endif -#if LIBCURL_VERSION_NUM >= 0x072e00 /* Available since 7.46.0 */ /** * @var int * @cvalue CURLOPT_STREAM_WEIGHT @@ -2667,9 +2632,7 @@ * @cvalue CURL_PUSH_DENY */ const CURL_PUSH_DENY = UNKNOWN; -#endif -#if LIBCURL_VERSION_NUM >= 0x072f00 /* Available since 7.47.0 */ /** * @var int * @cvalue CURL_HTTP_VERSION_2TLS @@ -2680,17 +2643,13 @@ * @cvalue CURL_VERSION_PSL */ const CURL_VERSION_PSL = UNKNOWN; -#endif -#if LIBCURL_VERSION_NUM >= 0x073000 /* Available since 7.48.0 */ /** * @var int * @cvalue CURLOPT_TFTP_NO_OPTIONS */ const CURLOPT_TFTP_NO_OPTIONS = UNKNOWN; -#endif -#if LIBCURL_VERSION_NUM >= 0x073100 /* Available since 7.49.0 */ /** * @var int * @cvalue CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE @@ -2706,17 +2665,13 @@ * @cvalue CURLOPT_TCP_FASTOPEN */ const CURLOPT_TCP_FASTOPEN = UNKNOWN; -#endif -#if LIBCURL_VERSION_NUM >= 0x073200 /* Available since 7.50.0 */ /** * @var int * @cvalue CURLINFO_HTTP_VERSION */ const CURLINFO_HTTP_VERSION = UNKNOWN; -#endif -#if LIBCURL_VERSION_NUM >= 0x073300 /* Available since 7.51.0 */ /** * @var int * @cvalue CURLE_WEIRD_SERVER_REPLY @@ -2727,9 +2682,7 @@ * @cvalue CURLOPT_KEEP_SENDING_ON_ERROR */ const CURLOPT_KEEP_SENDING_ON_ERROR = UNKNOWN; -#endif -#if LIBCURL_VERSION_NUM >= 0x073400 /* Available since 7.52.0 */ /** * @var int * @cvalue CURL_SSLVERSION_TLSv1_3 @@ -2850,9 +2803,7 @@ * @cvalue CURLPROXY_HTTPS */ const CURLPROXY_HTTPS = UNKNOWN; -#endif -#if LIBCURL_VERSION_NUM >= 0x073500 /* Available since 7.53.0 */ /** * @var int * @cvalue CURL_MAX_READ_SIZE @@ -2863,9 +2814,7 @@ * @cvalue CURLOPT_ABSTRACT_UNIX_SOCKET */ const CURLOPT_ABSTRACT_UNIX_SOCKET = UNKNOWN; -#endif -#if LIBCURL_VERSION_NUM >= 0x073600 /* Available since 7.54.0 */ /** * @var int * @cvalue CURL_SSLVERSION_MAX_DEFAULT @@ -2901,17 +2850,13 @@ * @cvalue CURLOPT_SUPPRESS_CONNECT_HEADERS */ const CURLOPT_SUPPRESS_CONNECT_HEADERS = UNKNOWN; -#endif -#if LIBCURL_VERSION_NUM >= 0x073601 /* Available since 7.54.1 */ /** * @var int * @cvalue CURLAUTH_GSSAPI */ const CURLAUTH_GSSAPI = UNKNOWN; -#endif -#if LIBCURL_VERSION_NUM >= 0x073700 /* Available since 7.55.0 */ /** * @var int * @cvalue CURLINFO_CONTENT_LENGTH_DOWNLOAD_T @@ -2952,9 +2897,7 @@ * @cvalue CURLOPT_SOCKS5_AUTH */ const CURLOPT_SOCKS5_AUTH = UNKNOWN; -#endif -#if LIBCURL_VERSION_NUM >= 0x073800 /* Available since 7.56.0 */ /** * @var int * @cvalue CURLOPT_SSH_COMPRESSION @@ -2965,9 +2908,7 @@ * @cvalue CURL_VERSION_MULTI_SSL */ const CURL_VERSION_MULTI_SSL = UNKNOWN; -#endif -#if LIBCURL_VERSION_NUM >= 0x073900 /* Available since 7.57.0 */ /** * @var int * @cvalue CURL_VERSION_BROTLI @@ -2978,17 +2919,13 @@ * @cvalue CURL_LOCK_DATA_CONNECT */ const CURL_LOCK_DATA_CONNECT = UNKNOWN; -#endif -#if LIBCURL_VERSION_NUM >= 0x073a00 /* Available since 7.58.0 */ /** * @var int * @cvalue CURLSSH_AUTH_GSSAPI */ const CURLSSH_AUTH_GSSAPI = UNKNOWN; -#endif -#if LIBCURL_VERSION_NUM >= 0x073b00 /* Available since 7.59.0 */ /** * @var int * @cvalue CURLINFO_FILETIME_T @@ -3004,9 +2941,7 @@ * @cvalue CURLOPT_TIMEVALUE_LARGE */ const CURLOPT_TIMEVALUE_LARGE = UNKNOWN; -#endif -#if LIBCURL_VERSION_NUM >= 0x073c00 /* Available since 7.60.0 */ /** * @var int * @cvalue CURLOPT_DNS_SHUFFLE_ADDRESSES @@ -3017,9 +2952,7 @@ * @cvalue CURLOPT_HAPROXYPROTOCOL */ const CURLOPT_HAPROXYPROTOCOL = UNKNOWN; -#endif -#if LIBCURL_VERSION_NUM >= 0x073d00 /* Available since 7.61.0 */ /** * @var int * @cvalue CURL_LOCK_DATA_PSL @@ -3080,7 +3013,6 @@ * @cvalue CURLOPT_TLS13_CIPHERS */ const CURLOPT_TLS13_CIPHERS = UNKNOWN; -#endif #if LIBCURL_VERSION_NUM >= 0x073E00 /* Available since 7.62.0 */ /** diff --git a/ext/curl/curl_arginfo.h b/ext/curl/curl_arginfo.h index f868ad505021d..20c407323adb2 100644 --- a/ext/curl/curl_arginfo.h +++ b/ext/curl/curl_arginfo.h @@ -1,5 +1,5 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: aebc4c2673203a4af49f55dd6eaf0bdbb4cafd68 */ + * Stub hash: 92f4985790d0dad4216be837571e41c86711b6f8 */ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_curl_close, 0, 1, IS_VOID, 0) ZEND_ARG_OBJ_INFO(0, handle, CurlHandle, 0) @@ -325,9 +325,7 @@ static void register_curl_symbols(int module_number) REGISTER_LONG_CONSTANT("CURLOPT_VERBOSE", CURLOPT_VERBOSE, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("CURLOPT_WRITEFUNCTION", CURLOPT_WRITEFUNCTION, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("CURLOPT_WRITEHEADER", CURLOPT_WRITEHEADER, CONST_PERSISTENT); -#if LIBCURL_VERSION_NUM >= 0x072000 REGISTER_LONG_CONSTANT("CURLOPT_XFERINFOFUNCTION", CURLOPT_XFERINFOFUNCTION, CONST_PERSISTENT); -#endif REGISTER_LONG_CONSTANT("CURLE_ABORTED_BY_CALLBACK", CURLE_ABORTED_BY_CALLBACK, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("CURLE_BAD_CALLING_ORDER", CURLE_BAD_CALLING_ORDER, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("CURLE_BAD_CONTENT_ENCODING", CURLE_BAD_CONTENT_ENCODING, CONST_PERSISTENT); @@ -387,9 +385,7 @@ static void register_curl_symbols(int module_number) REGISTER_LONG_CONSTANT("CURLE_SSL_ENGINE_NOTFOUND", CURLE_SSL_ENGINE_NOTFOUND, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("CURLE_SSL_ENGINE_SETFAILED", CURLE_SSL_ENGINE_SETFAILED, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("CURLE_SSL_PEER_CERTIFICATE", CURLE_SSL_PEER_CERTIFICATE, CONST_PERSISTENT); -#if LIBCURL_VERSION_NUM >= 0x072700 /* Available since 7.39.0 */ REGISTER_LONG_CONSTANT("CURLE_SSL_PINNEDPUBKEYNOTMATCH", CURLE_SSL_PINNEDPUBKEYNOTMATCH, CONST_PERSISTENT); -#endif REGISTER_LONG_CONSTANT("CURLE_TELNET_OPTION_SYNTAX", CURLE_TELNET_OPTION_SYNTAX, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("CURLE_TOO_MANY_REDIRECTS", CURLE_TOO_MANY_REDIRECTS, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("CURLE_UNKNOWN_TELNET_OPTION", CURLE_UNKNOWN_TELNET_OPTION, CONST_PERSISTENT); @@ -437,9 +433,7 @@ static void register_curl_symbols(int module_number) REGISTER_LONG_CONSTANT("CURLM_INTERNAL_ERROR", CURLM_INTERNAL_ERROR, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("CURLM_OK", CURLM_OK, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("CURLM_OUT_OF_MEMORY", CURLM_OUT_OF_MEMORY, CONST_PERSISTENT); -#if LIBCURL_VERSION_NUM >= 0x072001 /* Available since 7.32.1 */ REGISTER_LONG_CONSTANT("CURLM_ADDED_ALREADY", CURLM_ADDED_ALREADY, CONST_PERSISTENT); -#endif REGISTER_LONG_CONSTANT("CURLPROXY_HTTP", CURLPROXY_HTTP, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("CURLPROXY_SOCKS4", CURLPROXY_SOCKS4, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("CURLPROXY_SOCKS5", CURLPROXY_SOCKS5, CONST_PERSISTENT); @@ -694,366 +688,126 @@ static void register_curl_symbols(int module_number) REGISTER_LONG_CONSTANT("CURLSSLOPT_ALLOW_BEAST", CURLSSLOPT_ALLOW_BEAST, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("CURL_REDIR_POST_303", CURL_REDIR_POST_303, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("CURLSSH_AUTH_AGENT", CURLSSH_AUTH_AGENT, CONST_PERSISTENT); -#if LIBCURL_VERSION_NUM >= 0x071e00 /* Available since 7.30.0 */ REGISTER_LONG_CONSTANT("CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE", CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x071e00 /* Available since 7.30.0 */ REGISTER_LONG_CONSTANT("CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE", CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x071e00 /* Available since 7.30.0 */ REGISTER_LONG_CONSTANT("CURLMOPT_MAX_HOST_CONNECTIONS", CURLMOPT_MAX_HOST_CONNECTIONS, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x071e00 /* Available since 7.30.0 */ REGISTER_LONG_CONSTANT("CURLMOPT_MAX_PIPELINE_LENGTH", CURLMOPT_MAX_PIPELINE_LENGTH, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x071e00 /* Available since 7.30.0 */ REGISTER_LONG_CONSTANT("CURLMOPT_MAX_TOTAL_CONNECTIONS", CURLMOPT_MAX_TOTAL_CONNECTIONS, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x071f00 /* Available since 7.31.0 */ REGISTER_LONG_CONSTANT("CURLOPT_SASL_IR", CURLOPT_SASL_IR, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072100 /* Available since 7.33.0 */ REGISTER_LONG_CONSTANT("CURLOPT_DNS_INTERFACE", CURLOPT_DNS_INTERFACE, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072100 /* Available since 7.33.0 */ REGISTER_LONG_CONSTANT("CURLOPT_DNS_LOCAL_IP4", CURLOPT_DNS_LOCAL_IP4, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072100 /* Available since 7.33.0 */ REGISTER_LONG_CONSTANT("CURLOPT_DNS_LOCAL_IP6", CURLOPT_DNS_LOCAL_IP6, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072100 /* Available since 7.33.0 */ REGISTER_LONG_CONSTANT("CURLOPT_XOAUTH2_BEARER", CURLOPT_XOAUTH2_BEARER, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072100 /* Available since 7.33.0 */ REGISTER_LONG_CONSTANT("CURL_HTTP_VERSION_2_0", CURL_HTTP_VERSION_2_0, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072100 /* Available since 7.33.0 */ REGISTER_LONG_CONSTANT("CURL_VERSION_HTTP2", CURL_VERSION_HTTP2, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072200 /* Available since 7.34.0 */ REGISTER_LONG_CONSTANT("CURLOPT_LOGIN_OPTIONS", CURLOPT_LOGIN_OPTIONS, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072200 /* Available since 7.34.0 */ REGISTER_LONG_CONSTANT("CURL_SSLVERSION_TLSv1_0", CURL_SSLVERSION_TLSv1_0, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072200 /* Available since 7.34.0 */ REGISTER_LONG_CONSTANT("CURL_SSLVERSION_TLSv1_1", CURL_SSLVERSION_TLSv1_1, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072200 /* Available since 7.34.0 */ REGISTER_LONG_CONSTANT("CURL_SSLVERSION_TLSv1_2", CURL_SSLVERSION_TLSv1_2, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072400 /* Available since 7.36.0 */ REGISTER_LONG_CONSTANT("CURLOPT_EXPECT_100_TIMEOUT_MS", CURLOPT_EXPECT_100_TIMEOUT_MS, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072400 /* Available since 7.36.0 */ REGISTER_LONG_CONSTANT("CURLOPT_SSL_ENABLE_ALPN", CURLOPT_SSL_ENABLE_ALPN, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072400 /* Available since 7.36.0 */ REGISTER_LONG_CONSTANT("CURLOPT_SSL_ENABLE_NPN", CURLOPT_SSL_ENABLE_NPN, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072500 /* Available since 7.37.0 */ REGISTER_LONG_CONSTANT("CURLHEADER_SEPARATE", CURLHEADER_SEPARATE, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072500 /* Available since 7.37.0 */ REGISTER_LONG_CONSTANT("CURLHEADER_UNIFIED", CURLHEADER_UNIFIED, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072500 /* Available since 7.37.0 */ REGISTER_LONG_CONSTANT("CURLOPT_HEADEROPT", CURLOPT_HEADEROPT, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072500 /* Available since 7.37.0 */ REGISTER_LONG_CONSTANT("CURLOPT_PROXYHEADER", CURLOPT_PROXYHEADER, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072600 /* Available since 7.38.0 */ REGISTER_LONG_CONSTANT("CURLAUTH_NEGOTIATE", CURLAUTH_NEGOTIATE, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072600 /* Available since 7.38.0 */ REGISTER_LONG_CONSTANT("CURL_VERSION_GSSAPI", CURL_VERSION_GSSAPI, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072700 /* Available since 7.39.0 */ REGISTER_LONG_CONSTANT("CURLOPT_PINNEDPUBLICKEY", CURLOPT_PINNEDPUBLICKEY, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072800 /* Available since 7.40.0 */ REGISTER_LONG_CONSTANT("CURLOPT_UNIX_SOCKET_PATH", CURLOPT_UNIX_SOCKET_PATH, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072800 /* Available since 7.40.0 */ REGISTER_LONG_CONSTANT("CURLPROTO_SMB", CURLPROTO_SMB, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072800 /* Available since 7.40.0 */ REGISTER_LONG_CONSTANT("CURLPROTO_SMBS", CURLPROTO_SMBS, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072800 /* Available since 7.40.0 */ REGISTER_LONG_CONSTANT("CURL_VERSION_KERBEROS5", CURL_VERSION_KERBEROS5, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072800 /* Available since 7.40.0 */ REGISTER_LONG_CONSTANT("CURL_VERSION_UNIX_SOCKETS", CURL_VERSION_UNIX_SOCKETS, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072900 /* Available since 7.41.0 */ REGISTER_LONG_CONSTANT("CURLOPT_SSL_VERIFYSTATUS", CURLOPT_SSL_VERIFYSTATUS, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072a00 /* Available since 7.42.0 */ REGISTER_LONG_CONSTANT("CURLOPT_PATH_AS_IS", CURLOPT_PATH_AS_IS, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072a00 /* Available since 7.42.0 */ REGISTER_LONG_CONSTANT("CURLOPT_SSL_FALSESTART", CURLOPT_SSL_FALSESTART, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072b00 /* Available since 7.43.0 */ REGISTER_LONG_CONSTANT("CURL_HTTP_VERSION_2", CURL_HTTP_VERSION_2, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072b00 /* Available since 7.43.0 */ REGISTER_LONG_CONSTANT("CURLOPT_PIPEWAIT", CURLOPT_PIPEWAIT, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072b00 /* Available since 7.43.0 */ REGISTER_LONG_CONSTANT("CURLOPT_PROXY_SERVICE_NAME", CURLOPT_PROXY_SERVICE_NAME, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072b00 /* Available since 7.43.0 */ REGISTER_LONG_CONSTANT("CURLOPT_SERVICE_NAME", CURLOPT_SERVICE_NAME, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072b00 /* Available since 7.43.0 */ REGISTER_LONG_CONSTANT("CURLPIPE_NOTHING", CURLPIPE_NOTHING, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072b00 /* Available since 7.43.0 */ REGISTER_LONG_CONSTANT("CURLPIPE_HTTP1", CURLPIPE_HTTP1, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072b00 /* Available since 7.43.0 */ REGISTER_LONG_CONSTANT("CURLPIPE_MULTIPLEX", CURLPIPE_MULTIPLEX, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072c00 /* Available since 7.44.0 */ REGISTER_LONG_CONSTANT("CURLSSLOPT_NO_REVOKE", CURLSSLOPT_NO_REVOKE, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072d00 /* Available since 7.45.0 */ REGISTER_LONG_CONSTANT("CURLOPT_DEFAULT_PROTOCOL", CURLOPT_DEFAULT_PROTOCOL, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072e00 /* Available since 7.46.0 */ REGISTER_LONG_CONSTANT("CURLOPT_STREAM_WEIGHT", CURLOPT_STREAM_WEIGHT, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072e00 /* Available since 7.46.0 */ REGISTER_LONG_CONSTANT("CURLMOPT_PUSHFUNCTION", CURLMOPT_PUSHFUNCTION, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072e00 /* Available since 7.46.0 */ REGISTER_LONG_CONSTANT("CURL_PUSH_OK", CURL_PUSH_OK, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072e00 /* Available since 7.46.0 */ REGISTER_LONG_CONSTANT("CURL_PUSH_DENY", CURL_PUSH_DENY, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072f00 /* Available since 7.47.0 */ REGISTER_LONG_CONSTANT("CURL_HTTP_VERSION_2TLS", CURL_HTTP_VERSION_2TLS, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x072f00 /* Available since 7.47.0 */ REGISTER_LONG_CONSTANT("CURL_VERSION_PSL", CURL_VERSION_PSL, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073000 /* Available since 7.48.0 */ REGISTER_LONG_CONSTANT("CURLOPT_TFTP_NO_OPTIONS", CURLOPT_TFTP_NO_OPTIONS, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073100 /* Available since 7.49.0 */ REGISTER_LONG_CONSTANT("CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE", CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073100 /* Available since 7.49.0 */ REGISTER_LONG_CONSTANT("CURLOPT_CONNECT_TO", CURLOPT_CONNECT_TO, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073100 /* Available since 7.49.0 */ REGISTER_LONG_CONSTANT("CURLOPT_TCP_FASTOPEN", CURLOPT_TCP_FASTOPEN, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073200 /* Available since 7.50.0 */ REGISTER_LONG_CONSTANT("CURLINFO_HTTP_VERSION", CURLINFO_HTTP_VERSION, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073300 /* Available since 7.51.0 */ REGISTER_LONG_CONSTANT("CURLE_WEIRD_SERVER_REPLY", CURLE_WEIRD_SERVER_REPLY, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073300 /* Available since 7.51.0 */ REGISTER_LONG_CONSTANT("CURLOPT_KEEP_SENDING_ON_ERROR", CURLOPT_KEEP_SENDING_ON_ERROR, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073400 /* Available since 7.52.0 */ REGISTER_LONG_CONSTANT("CURL_SSLVERSION_TLSv1_3", CURL_SSLVERSION_TLSv1_3, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073400 /* Available since 7.52.0 */ REGISTER_LONG_CONSTANT("CURL_VERSION_HTTPS_PROXY", CURL_VERSION_HTTPS_PROXY, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073400 /* Available since 7.52.0 */ REGISTER_LONG_CONSTANT("CURLINFO_PROTOCOL", CURLINFO_PROTOCOL, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073400 /* Available since 7.52.0 */ REGISTER_LONG_CONSTANT("CURLINFO_PROXY_SSL_VERIFYRESULT", CURLINFO_PROXY_SSL_VERIFYRESULT, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073400 /* Available since 7.52.0 */ REGISTER_LONG_CONSTANT("CURLINFO_SCHEME", CURLINFO_SCHEME, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073400 /* Available since 7.52.0 */ REGISTER_LONG_CONSTANT("CURLOPT_PRE_PROXY", CURLOPT_PRE_PROXY, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073400 /* Available since 7.52.0 */ REGISTER_LONG_CONSTANT("CURLOPT_PROXY_CAINFO", CURLOPT_PROXY_CAINFO, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073400 /* Available since 7.52.0 */ REGISTER_LONG_CONSTANT("CURLOPT_PROXY_CAPATH", CURLOPT_PROXY_CAPATH, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073400 /* Available since 7.52.0 */ REGISTER_LONG_CONSTANT("CURLOPT_PROXY_CRLFILE", CURLOPT_PROXY_CRLFILE, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073400 /* Available since 7.52.0 */ REGISTER_LONG_CONSTANT("CURLOPT_PROXY_KEYPASSWD", CURLOPT_PROXY_KEYPASSWD, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073400 /* Available since 7.52.0 */ REGISTER_LONG_CONSTANT("CURLOPT_PROXY_PINNEDPUBLICKEY", CURLOPT_PROXY_PINNEDPUBLICKEY, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073400 /* Available since 7.52.0 */ REGISTER_LONG_CONSTANT("CURLOPT_PROXY_SSL_CIPHER_LIST", CURLOPT_PROXY_SSL_CIPHER_LIST, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073400 /* Available since 7.52.0 */ REGISTER_LONG_CONSTANT("CURLOPT_PROXY_SSL_OPTIONS", CURLOPT_PROXY_SSL_OPTIONS, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073400 /* Available since 7.52.0 */ REGISTER_LONG_CONSTANT("CURLOPT_PROXY_SSL_VERIFYHOST", CURLOPT_PROXY_SSL_VERIFYHOST, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073400 /* Available since 7.52.0 */ REGISTER_LONG_CONSTANT("CURLOPT_PROXY_SSL_VERIFYPEER", CURLOPT_PROXY_SSL_VERIFYPEER, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073400 /* Available since 7.52.0 */ REGISTER_LONG_CONSTANT("CURLOPT_PROXY_SSLCERT", CURLOPT_PROXY_SSLCERT, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073400 /* Available since 7.52.0 */ REGISTER_LONG_CONSTANT("CURLOPT_PROXY_SSLCERTTYPE", CURLOPT_PROXY_SSLCERTTYPE, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073400 /* Available since 7.52.0 */ REGISTER_LONG_CONSTANT("CURLOPT_PROXY_SSLKEY", CURLOPT_PROXY_SSLKEY, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073400 /* Available since 7.52.0 */ REGISTER_LONG_CONSTANT("CURLOPT_PROXY_SSLKEYTYPE", CURLOPT_PROXY_SSLKEYTYPE, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073400 /* Available since 7.52.0 */ REGISTER_LONG_CONSTANT("CURLOPT_PROXY_SSLVERSION", CURLOPT_PROXY_SSLVERSION, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073400 /* Available since 7.52.0 */ REGISTER_LONG_CONSTANT("CURLOPT_PROXY_TLSAUTH_PASSWORD", CURLOPT_PROXY_TLSAUTH_PASSWORD, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073400 /* Available since 7.52.0 */ REGISTER_LONG_CONSTANT("CURLOPT_PROXY_TLSAUTH_TYPE", CURLOPT_PROXY_TLSAUTH_TYPE, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073400 /* Available since 7.52.0 */ REGISTER_LONG_CONSTANT("CURLOPT_PROXY_TLSAUTH_USERNAME", CURLOPT_PROXY_TLSAUTH_USERNAME, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073400 /* Available since 7.52.0 */ REGISTER_LONG_CONSTANT("CURLPROXY_HTTPS", CURLPROXY_HTTPS, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073500 /* Available since 7.53.0 */ REGISTER_LONG_CONSTANT("CURL_MAX_READ_SIZE", CURL_MAX_READ_SIZE, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073500 /* Available since 7.53.0 */ REGISTER_LONG_CONSTANT("CURLOPT_ABSTRACT_UNIX_SOCKET", CURLOPT_ABSTRACT_UNIX_SOCKET, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073600 /* Available since 7.54.0 */ REGISTER_LONG_CONSTANT("CURL_SSLVERSION_MAX_DEFAULT", CURL_SSLVERSION_MAX_DEFAULT, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073600 /* Available since 7.54.0 */ REGISTER_LONG_CONSTANT("CURL_SSLVERSION_MAX_NONE", CURL_SSLVERSION_MAX_NONE, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073600 /* Available since 7.54.0 */ REGISTER_LONG_CONSTANT("CURL_SSLVERSION_MAX_TLSv1_0", CURL_SSLVERSION_MAX_TLSv1_0, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073600 /* Available since 7.54.0 */ REGISTER_LONG_CONSTANT("CURL_SSLVERSION_MAX_TLSv1_1", CURL_SSLVERSION_MAX_TLSv1_1, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073600 /* Available since 7.54.0 */ REGISTER_LONG_CONSTANT("CURL_SSLVERSION_MAX_TLSv1_2", CURL_SSLVERSION_MAX_TLSv1_2, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073600 /* Available since 7.54.0 */ REGISTER_LONG_CONSTANT("CURL_SSLVERSION_MAX_TLSv1_3", CURL_SSLVERSION_MAX_TLSv1_3, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073600 /* Available since 7.54.0 */ REGISTER_LONG_CONSTANT("CURLOPT_SUPPRESS_CONNECT_HEADERS", CURLOPT_SUPPRESS_CONNECT_HEADERS, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073601 /* Available since 7.54.1 */ REGISTER_LONG_CONSTANT("CURLAUTH_GSSAPI", CURLAUTH_GSSAPI, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073700 /* Available since 7.55.0 */ REGISTER_LONG_CONSTANT("CURLINFO_CONTENT_LENGTH_DOWNLOAD_T", CURLINFO_CONTENT_LENGTH_DOWNLOAD_T, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073700 /* Available since 7.55.0 */ REGISTER_LONG_CONSTANT("CURLINFO_CONTENT_LENGTH_UPLOAD_T", CURLINFO_CONTENT_LENGTH_UPLOAD_T, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073700 /* Available since 7.55.0 */ REGISTER_LONG_CONSTANT("CURLINFO_SIZE_DOWNLOAD_T", CURLINFO_SIZE_DOWNLOAD_T, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073700 /* Available since 7.55.0 */ REGISTER_LONG_CONSTANT("CURLINFO_SIZE_UPLOAD_T", CURLINFO_SIZE_UPLOAD_T, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073700 /* Available since 7.55.0 */ REGISTER_LONG_CONSTANT("CURLINFO_SPEED_DOWNLOAD_T", CURLINFO_SPEED_DOWNLOAD_T, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073700 /* Available since 7.55.0 */ REGISTER_LONG_CONSTANT("CURLINFO_SPEED_UPLOAD_T", CURLINFO_SPEED_UPLOAD_T, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073700 /* Available since 7.55.0 */ REGISTER_LONG_CONSTANT("CURLOPT_REQUEST_TARGET", CURLOPT_REQUEST_TARGET, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073700 /* Available since 7.55.0 */ REGISTER_LONG_CONSTANT("CURLOPT_SOCKS5_AUTH", CURLOPT_SOCKS5_AUTH, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073800 /* Available since 7.56.0 */ REGISTER_LONG_CONSTANT("CURLOPT_SSH_COMPRESSION", CURLOPT_SSH_COMPRESSION, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073800 /* Available since 7.56.0 */ REGISTER_LONG_CONSTANT("CURL_VERSION_MULTI_SSL", CURL_VERSION_MULTI_SSL, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073900 /* Available since 7.57.0 */ REGISTER_LONG_CONSTANT("CURL_VERSION_BROTLI", CURL_VERSION_BROTLI, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073900 /* Available since 7.57.0 */ REGISTER_LONG_CONSTANT("CURL_LOCK_DATA_CONNECT", CURL_LOCK_DATA_CONNECT, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073a00 /* Available since 7.58.0 */ REGISTER_LONG_CONSTANT("CURLSSH_AUTH_GSSAPI", CURLSSH_AUTH_GSSAPI, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073b00 /* Available since 7.59.0 */ REGISTER_LONG_CONSTANT("CURLINFO_FILETIME_T", CURLINFO_FILETIME_T, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073b00 /* Available since 7.59.0 */ REGISTER_LONG_CONSTANT("CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS", CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073b00 /* Available since 7.59.0 */ REGISTER_LONG_CONSTANT("CURLOPT_TIMEVALUE_LARGE", CURLOPT_TIMEVALUE_LARGE, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073c00 /* Available since 7.60.0 */ REGISTER_LONG_CONSTANT("CURLOPT_DNS_SHUFFLE_ADDRESSES", CURLOPT_DNS_SHUFFLE_ADDRESSES, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073c00 /* Available since 7.60.0 */ REGISTER_LONG_CONSTANT("CURLOPT_HAPROXYPROTOCOL", CURLOPT_HAPROXYPROTOCOL, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073d00 /* Available since 7.61.0 */ REGISTER_LONG_CONSTANT("CURL_LOCK_DATA_PSL", CURL_LOCK_DATA_PSL, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073d00 /* Available since 7.61.0 */ REGISTER_LONG_CONSTANT("CURLAUTH_BEARER", CURLAUTH_BEARER, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073d00 /* Available since 7.61.0 */ REGISTER_LONG_CONSTANT("CURLINFO_APPCONNECT_TIME_T", CURLINFO_APPCONNECT_TIME_T, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073d00 /* Available since 7.61.0 */ REGISTER_LONG_CONSTANT("CURLINFO_CONNECT_TIME_T", CURLINFO_CONNECT_TIME_T, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073d00 /* Available since 7.61.0 */ REGISTER_LONG_CONSTANT("CURLINFO_NAMELOOKUP_TIME_T", CURLINFO_NAMELOOKUP_TIME_T, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073d00 /* Available since 7.61.0 */ REGISTER_LONG_CONSTANT("CURLINFO_PRETRANSFER_TIME_T", CURLINFO_PRETRANSFER_TIME_T, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073d00 /* Available since 7.61.0 */ REGISTER_LONG_CONSTANT("CURLINFO_REDIRECT_TIME_T", CURLINFO_REDIRECT_TIME_T, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073d00 /* Available since 7.61.0 */ REGISTER_LONG_CONSTANT("CURLINFO_STARTTRANSFER_TIME_T", CURLINFO_STARTTRANSFER_TIME_T, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073d00 /* Available since 7.61.0 */ REGISTER_LONG_CONSTANT("CURLINFO_TOTAL_TIME_T", CURLINFO_TOTAL_TIME_T, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073d00 /* Available since 7.61.0 */ REGISTER_LONG_CONSTANT("CURLOPT_DISALLOW_USERNAME_IN_URL", CURLOPT_DISALLOW_USERNAME_IN_URL, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073d00 /* Available since 7.61.0 */ REGISTER_LONG_CONSTANT("CURLOPT_PROXY_TLS13_CIPHERS", CURLOPT_PROXY_TLS13_CIPHERS, CONST_PERSISTENT); -#endif -#if LIBCURL_VERSION_NUM >= 0x073d00 /* Available since 7.61.0 */ REGISTER_LONG_CONSTANT("CURLOPT_TLS13_CIPHERS", CURLOPT_TLS13_CIPHERS, CONST_PERSISTENT); -#endif #if LIBCURL_VERSION_NUM >= 0x073E00 /* Available since 7.62.0 */ REGISTER_LONG_CONSTANT("CURLOPT_DOH_URL", CURLOPT_DOH_URL, CONST_PERSISTENT); #endif diff --git a/ext/curl/curl_private.h b/ext/curl/curl_private.h index 3800d6533e555..904dca4048d50 100644 --- a/ext/curl/curl_private.h +++ b/ext/curl/curl_private.h @@ -73,9 +73,7 @@ typedef struct { php_curl_read *read; zval std_err; php_curl_callback *progress; -#if LIBCURL_VERSION_NUM >= 0x072000 php_curl_callback *xferinfo; -#endif php_curl_callback *fnmatch; #if LIBCURL_VERSION_NUM >= 0x075400 php_curl_callback *sshhostkey; @@ -94,9 +92,6 @@ struct _php_curl_send_headers { struct _php_curl_free { zend_llist post; zend_llist stream; -#if LIBCURL_VERSION_NUM < 0x073800 /* 7.56.0 */ - zend_llist buffers; -#endif HashTable *slist; }; diff --git a/ext/curl/interface.c b/ext/curl/interface.c index 44284b7a29670..3d55ed3ac86dc 100644 --- a/ext/curl/interface.c +++ b/ext/curl/interface.c @@ -123,7 +123,7 @@ static zend_result php_curl_option_url(php_curl *ch, const zend_string *url) /* curl_easy_setopt(ch->cp, CURLOPT_PROTOCOLS, CURLPROTO_ALL & ~CURLPROTO_FILE); } -#if LIBCURL_VERSION_NUM > 0x073800 && defined(PHP_WIN32) +#ifdef PHP_WIN32 if ( zend_string_starts_with_literal_ci(url, "file://") && '/' != ZSTR_VAL(url)[sizeof("file://") - 1] @@ -285,28 +285,14 @@ PHP_MINFO_FUNCTION(curl) {"SSL", CURL_VERSION_SSL}, {"SSPI", CURL_VERSION_SSPI}, {"TLS-SRP", CURL_VERSION_TLSAUTH_SRP}, -#if LIBCURL_VERSION_NUM >= 0x072100 /* 7.33.0 */ {"HTTP2", CURL_VERSION_HTTP2}, -#endif -#if LIBCURL_VERSION_NUM >= 0x072600 /* 7.38.0 */ {"GSSAPI", CURL_VERSION_GSSAPI}, -#endif -#if LIBCURL_VERSION_NUM >= 0x072800 /* 7.40.0 */ {"KERBEROS5", CURL_VERSION_KERBEROS5}, {"UNIX_SOCKETS", CURL_VERSION_UNIX_SOCKETS}, -#endif -#if LIBCURL_VERSION_NUM >= 0x072f00 /* 7.47.0 */ {"PSL", CURL_VERSION_PSL}, -#endif -#if LIBCURL_VERSION_NUM >= 0x073400 /* 7.52.0 */ {"HTTPS_PROXY", CURL_VERSION_HTTPS_PROXY}, -#endif -#if LIBCURL_VERSION_NUM >= 0x073800 /* 7.56.0 */ {"MULTI_SSL", CURL_VERSION_MULTI_SSL}, -#endif -#if LIBCURL_VERSION_NUM >= 0x073900 /* 7.57.0 */ {"BROTLI", CURL_VERSION_BROTLI}, -#endif #if LIBCURL_VERSION_NUM >= 0x074001 /* 7.64.1 */ {"ALTSVC", CURL_VERSION_ALTSVC}, #endif @@ -505,11 +491,9 @@ static HashTable *curl_get_gc(zend_object *object, zval **table, int *n) zend_get_gc_buffer_add_zval(gc_buffer, &curl->handlers.progress->func_name); } -#if LIBCURL_VERSION_NUM >= 0x072000 if (curl->handlers.xferinfo) { zend_get_gc_buffer_add_zval(gc_buffer, &curl->handlers.xferinfo->func_name); } -#endif if (curl->handlers.fnmatch) { zend_get_gc_buffer_add_zval(gc_buffer, &curl->handlers.fnmatch->func_name); @@ -724,7 +708,6 @@ static size_t curl_progress(void *clientp, double dltotal, double dlnow, double } /* }}} */ -#if LIBCURL_VERSION_NUM >= 0x072000 /* {{{ curl_xferinfo */ static size_t curl_xferinfo(void *clientp, curl_off_t dltotal, curl_off_t dlnow, curl_off_t ultotal, curl_off_t ulnow) { @@ -772,7 +755,6 @@ static size_t curl_xferinfo(void *clientp, curl_off_t dltotal, curl_off_t dlnow, return rval; } /* }}} */ -#endif #if LIBCURL_VERSION_NUM >= 0x075400 static int curl_ssh_hostkeyfunction(void *clientp, int keytype, const char *key, size_t keylen) @@ -974,11 +956,7 @@ static int curl_debug(CURL *cp, curl_infotype type, char *buf, size_t buf_len, v /* {{{ curl_free_post */ static void curl_free_post(void **post) { -#if LIBCURL_VERSION_NUM >= 0x073800 /* 7.56.0 */ curl_mime_free((curl_mime *)*post); -#else - curl_formfree((struct HttpPost *)*post); -#endif } /* }}} */ @@ -998,15 +976,6 @@ static void curl_free_cb_arg(void **cb_arg_p) } /* }}} */ -#if LIBCURL_VERSION_NUM < 0x073800 /* 7.56.0 */ -/* {{{ curl_free_buffers */ -static void curl_free_buffers(void **buffer) -{ - zend_string_release((zend_string *) *buffer); -} -/* }}} */ -#endif - /* {{{ curl_free_slist */ static void curl_free_slist(zval *el) { @@ -1060,12 +1029,10 @@ PHP_FUNCTION(curl_version) CAAL("iconv_ver_num", d->iconv_ver_num); CAAS("libssh_version", d->libssh_version); } -#if LIBCURL_VERSION_NUM >= 0x073900 /* Available since 7.57.0 */ if (d->age >= 4) { CAAL("brotli_ver_num", d->brotli_ver_num); CAAS("brotli_version", d->brotli_version); } -#endif } /* }}} */ @@ -1088,9 +1055,7 @@ void init_curl_handle(php_curl *ch) ch->handlers.write_header = ecalloc(1, sizeof(php_curl_write)); ch->handlers.read = ecalloc(1, sizeof(php_curl_read)); ch->handlers.progress = NULL; -#if LIBCURL_VERSION_NUM >= 0x072000 ch->handlers.xferinfo = NULL; -#endif ch->handlers.fnmatch = NULL; #if LIBCURL_VERSION_NUM >= 0x075400 ch->handlers.sshhostkey = NULL; @@ -1103,10 +1068,6 @@ void init_curl_handle(php_curl *ch) zend_llist_init(&ch->to_free->post, sizeof(struct HttpPost *), (llist_dtor_func_t)curl_free_post, 0); zend_llist_init(&ch->to_free->stream, sizeof(struct mime_data_cb_arg *), (llist_dtor_func_t)curl_free_cb_arg, 0); -#if LIBCURL_VERSION_NUM < 0x073800 /* 7.56.0 */ - zend_llist_init(&ch->to_free->buffers, sizeof(zend_string *), (llist_dtor_func_t)curl_free_buffers, 0); -#endif - ch->to_free->slist = emalloc(sizeof(HashTable)); zend_hash_init(ch->to_free->slist, 4, NULL, curl_free_slist, 0); ZVAL_UNDEF(&ch->postfields); @@ -1270,9 +1231,7 @@ void _php_setup_easy_copy_handlers(php_curl *ch, php_curl *source) curl_easy_setopt(ch->cp, CURLOPT_DEBUGDATA, (void *) ch); _php_copy_callback(ch, &ch->handlers.progress, source->handlers.progress, CURLOPT_PROGRESSDATA); -#if LIBCURL_VERSION_NUM >= 0x072000 _php_copy_callback(ch, &ch->handlers.xferinfo, source->handlers.xferinfo, CURLOPT_XFERINFODATA); -#endif _php_copy_callback(ch, &ch->handlers.fnmatch, source->handlers.fnmatch, CURLOPT_FNMATCH_DATA); #if LIBCURL_VERSION_NUM >= 0x075400 _php_copy_callback(ch, &ch->handlers.sshhostkey, source->handlers.sshhostkey, CURLOPT_SSH_HOSTKEYDATA); @@ -1290,7 +1249,6 @@ void _php_setup_easy_copy_handlers(php_curl *ch, php_curl *source) (*source->clone)++; } -#if LIBCURL_VERSION_NUM >= 0x073800 /* 7.56.0 */ static size_t read_cb(char *buffer, size_t size, size_t nitems, void *arg) /* {{{ */ { struct mime_data_cb_arg *cb_arg = (struct mime_data_cb_arg *) arg; @@ -1334,26 +1292,16 @@ static void free_cb(void *arg) /* {{{ */ } } /* }}} */ -#endif -#if LIBCURL_VERSION_NUM >= 0x073800 /* 7.56.0 */ static inline CURLcode add_simple_field(curl_mime *mime, zend_string *string_key, zval *current) -#else -static inline CURLcode add_simple_field(struct HttpPost **first, struct HttpPost **last, zend_string *string_key, zval *current) -#endif { CURLcode error = CURLE_OK; -#if LIBCURL_VERSION_NUM >= 0x073800 /* 7.56.0 */ curl_mimepart *part; CURLcode form_error; -#else - CURLFORMcode form_error; -#endif zend_string *postval, *tmp_postval; postval = zval_get_tmp_string(current, &tmp_postval); -#if LIBCURL_VERSION_NUM >= 0x073800 /* 7.56.0 */ part = curl_mime_addpart(mime); if (part == NULL) { zend_tmp_string_release(tmp_postval); @@ -1364,23 +1312,7 @@ static inline CURLcode add_simple_field(struct HttpPost **first, struct HttpPost || (form_error = curl_mime_data(part, ZSTR_VAL(postval), ZSTR_LEN(postval))) != CURLE_OK) { error = form_error; } -#else - /* The arguments after _NAMELENGTH and _CONTENTSLENGTH - * must be explicitly cast to long in curl_formadd - * use since curl needs a long not an int. */ - form_error = curl_formadd(first, last, - CURLFORM_COPYNAME, ZSTR_VAL(string_key), - CURLFORM_NAMELENGTH, ZSTR_LEN(string_key), - CURLFORM_COPYCONTENTS, ZSTR_VAL(postval), - CURLFORM_CONTENTSLENGTH, ZSTR_LEN(postval), - CURLFORM_END - ); - - if (form_error != CURL_FORMADD_OK) { - /* Not nice to convert between enums but we only have place for one error type */ - error = (CURLcode)form_error; - } -#endif + zend_tmp_string_release(tmp_postval); return error; @@ -1393,24 +1325,16 @@ static inline zend_result build_mime_structure_from_hash(php_curl *ch, zval *zpo zval *current; zend_string *string_key; zend_ulong num_key; -#if LIBCURL_VERSION_NUM >= 0x073800 /* 7.56.0 */ curl_mime *mime = NULL; curl_mimepart *part; CURLcode form_error; -#else - struct HttpPost *first = NULL; - struct HttpPost *last = NULL; - CURLFORMcode form_error; -#endif -#if LIBCURL_VERSION_NUM >= 0x073800 /* 7.56.0 */ if (zend_hash_num_elements(postfields) > 0) { mime = curl_mime_init(ch->cp); if (mime == NULL) { return FAILURE; } } -#endif ZEND_HASH_FOREACH_KEY_VAL(postfields, num_key, string_key, current) { zend_string *postval; @@ -1427,13 +1351,11 @@ static inline zend_result build_mime_structure_from_hash(php_curl *ch, zval *zpo /* new-style file upload */ zval *prop, rv; char *type = NULL, *filename = NULL; -#if LIBCURL_VERSION_NUM >= 0x073800 /* 7.56.0 */ struct mime_data_cb_arg *cb_arg; php_stream *stream; php_stream_statbuf ssb; size_t filesize = -1; curl_seek_callback seekfunc = seek_cb; -#endif prop = zend_read_property_ex(curl_CURLFile_class, Z_OBJ_P(current), ZSTR_KNOWN(ZEND_STR_NAME), /* silent */ false, &rv); ZVAL_DEREF(prop); @@ -1457,7 +1379,6 @@ static inline zend_result build_mime_structure_from_hash(php_curl *ch, zval *zpo filename = Z_STRVAL_P(prop); } -#if LIBCURL_VERSION_NUM >= 0x073800 /* 7.56.0 */ zval_ptr_dtor(&ch->postfields); ZVAL_COPY(&ch->postfields, zpostfields); @@ -1485,19 +1406,6 @@ static inline zend_result build_mime_structure_from_hash(php_curl *ch, zval *zpo error = form_error; } zend_llist_add_element(&ch->to_free->stream, &cb_arg); -#else - form_error = curl_formadd(&first, &last, - CURLFORM_COPYNAME, ZSTR_VAL(string_key), - CURLFORM_NAMELENGTH, ZSTR_LEN(string_key), - CURLFORM_FILENAME, filename ? filename : ZSTR_VAL(postval), - CURLFORM_CONTENTTYPE, type ? type : "application/octet-stream", - CURLFORM_FILE, ZSTR_VAL(postval), - CURLFORM_END); - if (form_error != CURL_FORMADD_OK) { - /* Not nice to convert between enums but we only have place for one error type */ - error = (CURLcode)form_error; - } -#endif } zend_string_release_ex(string_key, 0); @@ -1539,7 +1447,6 @@ static inline zend_result build_mime_structure_from_hash(php_curl *ch, zval *zpo postval = Z_STR_P(prop); -#if LIBCURL_VERSION_NUM >= 0x073800 /* 7.56.0 */ zval_ptr_dtor(&ch->postfields); ZVAL_COPY(&ch->postfields, zpostfields); @@ -1554,23 +1461,6 @@ static inline zend_result build_mime_structure_from_hash(php_curl *ch, zval *zpo || (form_error = curl_mime_type(part, type)) != CURLE_OK) { error = form_error; } -#else - postval = zend_string_copy(postval); - zend_llist_add_element(&ch->to_free->buffers, &postval); - - form_error = curl_formadd(&first, &last, - CURLFORM_COPYNAME, ZSTR_VAL(string_key), - CURLFORM_NAMELENGTH, ZSTR_LEN(string_key), - CURLFORM_BUFFER, filename, - CURLFORM_CONTENTTYPE, type, - CURLFORM_BUFFERPTR, ZSTR_VAL(postval), - CURLFORM_BUFFERLENGTH, ZSTR_LEN(postval), - CURLFORM_END); - if (form_error != CURL_FORMADD_OK) { - /* Not nice to convert between enums but we only have place for one error type */ - error = (CURLcode)form_error; - } -#endif zend_string_release_ex(string_key, 0); continue; @@ -1580,22 +1470,14 @@ static inline zend_result build_mime_structure_from_hash(php_curl *ch, zval *zpo zval *current_element; ZEND_HASH_FOREACH_VAL(HASH_OF(current), current_element) { -#if LIBCURL_VERSION_NUM >= 0x073800 /* 7.56.0 */ add_simple_field(mime, string_key, current_element); -#else - add_simple_field(&first, &last, string_key, current_element); -#endif } ZEND_HASH_FOREACH_END(); zend_string_release_ex(string_key, 0); continue; } -#if LIBCURL_VERSION_NUM >= 0x073800 /* 7.56.0 */ add_simple_field(mime, string_key, current); -#else - add_simple_field(&first, &last, string_key, current); -#endif zend_string_release_ex(string_key, 0); } ZEND_HASH_FOREACH_END(); @@ -1608,13 +1490,8 @@ static inline zend_result build_mime_structure_from_hash(php_curl *ch, zval *zpo if ((*ch->clone) == 1) { zend_llist_clean(&ch->to_free->post); } -#if LIBCURL_VERSION_NUM >= 0x073800 /* 7.56.0 */ zend_llist_add_element(&ch->to_free->post, &mime); error = curl_easy_setopt(ch->cp, CURLOPT_MIMEPOST, mime); -#else - zend_llist_add_element(&ch->to_free->post, &first); - error = curl_easy_setopt(ch->cp, CURLOPT_HTTPPOST, first); -#endif SAVE_CURL_ERROR(ch, error); return error == CURLE_OK ? SUCCESS : FAILURE; @@ -1758,64 +1635,30 @@ static zend_result _php_curl_setopt(php_curl *ch, zend_long option, zval *zvalue case CURLOPT_TCP_KEEPALIVE: case CURLOPT_TCP_KEEPIDLE: case CURLOPT_TCP_KEEPINTVL: -#if LIBCURL_VERSION_NUM >= 0x071f00 /* Available since 7.31.0 */ case CURLOPT_SASL_IR: -#endif -#if LIBCURL_VERSION_NUM >= 0x072400 /* Available since 7.36.0 */ case CURLOPT_EXPECT_100_TIMEOUT_MS: case CURLOPT_SSL_ENABLE_ALPN: case CURLOPT_SSL_ENABLE_NPN: -#endif -#if LIBCURL_VERSION_NUM >= 0x072500 /* Available since 7.37.0 */ case CURLOPT_HEADEROPT: -#endif -#if LIBCURL_VERSION_NUM >= 0x072900 /* Available since 7.41.0 */ case CURLOPT_SSL_VERIFYSTATUS: -#endif -#if LIBCURL_VERSION_NUM >= 0x072a00 /* Available since 7.42.0 */ case CURLOPT_PATH_AS_IS: case CURLOPT_SSL_FALSESTART: -#endif -#if LIBCURL_VERSION_NUM >= 0x072b00 /* Available since 7.43.0 */ case CURLOPT_PIPEWAIT: -#endif -#if LIBCURL_VERSION_NUM >= 0x072e00 /* Available since 7.46.0 */ case CURLOPT_STREAM_WEIGHT: -#endif -#if LIBCURL_VERSION_NUM >= 0x073000 /* Available since 7.48.0 */ case CURLOPT_TFTP_NO_OPTIONS: -#endif -#if LIBCURL_VERSION_NUM >= 0x073100 /* Available since 7.49.0 */ case CURLOPT_TCP_FASTOPEN: -#endif -#if LIBCURL_VERSION_NUM >= 0x073300 /* Available since 7.51.0 */ case CURLOPT_KEEP_SENDING_ON_ERROR: -#endif -#if LIBCURL_VERSION_NUM >= 0x073400 /* Available since 7.52.0 */ case CURLOPT_PROXY_SSL_OPTIONS: case CURLOPT_PROXY_SSL_VERIFYHOST: case CURLOPT_PROXY_SSL_VERIFYPEER: case CURLOPT_PROXY_SSLVERSION: -#endif -#if LIBCURL_VERSION_NUM >= 0x073600 /* Available since 7.54.0 */ case CURLOPT_SUPPRESS_CONNECT_HEADERS: -#endif -#if LIBCURL_VERSION_NUM >= 0x073700 /* Available since 7.55.0 */ case CURLOPT_SOCKS5_AUTH: -#endif -#if LIBCURL_VERSION_NUM >= 0x073800 /* Available since 7.56.0 */ case CURLOPT_SSH_COMPRESSION: -#endif -#if LIBCURL_VERSION_NUM >= 0x073b00 /* Available since 7.59.0 */ case CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS: -#endif -#if LIBCURL_VERSION_NUM >= 0x073c00 /* Available since 7.60.0 */ case CURLOPT_DNS_SHUFFLE_ADDRESSES: case CURLOPT_HAPROXYPROTOCOL: -#endif -#if LIBCURL_VERSION_NUM >= 0x073d00 /* Available since 7.61.0 */ case CURLOPT_DISALLOW_USERNAME_IN_URL: -#endif #if LIBCURL_VERSION_NUM >= 0x073E00 /* Available since 7.62.0 */ case CURLOPT_UPKEEP_INTERVAL_MS: case CURLOPT_UPLOAD_BUFFERSIZE: @@ -1910,20 +1753,11 @@ static zend_result _php_curl_setopt(php_curl *ch, zend_long option, zval *zvalue case CURLOPT_TRANSFER_ENCODING: case CURLOPT_DNS_SERVERS: case CURLOPT_MAIL_AUTH: -#if LIBCURL_VERSION_NUM >= 0x072200 /* Available since 7.34.0 */ case CURLOPT_LOGIN_OPTIONS: -#endif -#if LIBCURL_VERSION_NUM >= 0x072700 /* Available since 7.39.0 */ case CURLOPT_PINNEDPUBLICKEY: -#endif -#if LIBCURL_VERSION_NUM >= 0x072b00 /* Available since 7.43.0 */ case CURLOPT_PROXY_SERVICE_NAME: case CURLOPT_SERVICE_NAME: -#endif -#if LIBCURL_VERSION_NUM >= 0x072d00 /* Available since 7.45.0 */ case CURLOPT_DEFAULT_PROTOCOL: -#endif -#if LIBCURL_VERSION_NUM >= 0x073400 /* Available since 7.52.0 */ case CURLOPT_PRE_PROXY: case CURLOPT_PROXY_CAINFO: case CURLOPT_PROXY_CAPATH: @@ -1938,17 +1772,10 @@ static zend_result _php_curl_setopt(php_curl *ch, zend_long option, zval *zvalue case CURLOPT_PROXY_TLSAUTH_PASSWORD: case CURLOPT_PROXY_TLSAUTH_TYPE: case CURLOPT_PROXY_TLSAUTH_USERNAME: -#endif -#if LIBCURL_VERSION_NUM >= 0x073500 /* Available since 7.53.0 */ case CURLOPT_ABSTRACT_UNIX_SOCKET: -#endif -#if LIBCURL_VERSION_NUM >= 0x073700 /* Available since 7.55.0 */ case CURLOPT_REQUEST_TARGET: -#endif -#if LIBCURL_VERSION_NUM >= 0x073d00 /* Available since 7.61.0 */ case CURLOPT_PROXY_TLS13_CIPHERS: case CURLOPT_TLS13_CIPHERS: -#endif #if LIBCURL_VERSION_NUM >= 0x074001 /* Available since 7.64.1 */ case CURLOPT_ALTSVC: #endif @@ -1993,15 +1820,11 @@ static zend_result _php_curl_setopt(php_curl *ch, zend_long option, zval *zvalue case CURLOPT_FTP_ACCOUNT: case CURLOPT_RTSP_SESSION_ID: case CURLOPT_ACCEPT_ENCODING: -#if LIBCURL_VERSION_NUM >= 0x072100 /* Available since 7.33.0 */ case CURLOPT_DNS_INTERFACE: case CURLOPT_DNS_LOCAL_IP4: case CURLOPT_DNS_LOCAL_IP6: case CURLOPT_XOAUTH2_BEARER: -#endif -#if LIBCURL_VERSION_NUM >= 0x072800 /* Available since 7.40.0 */ case CURLOPT_UNIX_SOCKET_PATH: -#endif #if LIBCURL_VERSION_NUM >= 0x073E00 /* Available since 7.62.0 */ case CURLOPT_DOH_URL: #endif @@ -2146,12 +1969,8 @@ static zend_result _php_curl_setopt(php_curl *ch, zend_long option, zval *zvalue case CURLOPT_TELNETOPTIONS: case CURLOPT_MAIL_RCPT: case CURLOPT_RESOLVE: -#if LIBCURL_VERSION_NUM >= 0x072500 /* Available since 7.37.0 */ case CURLOPT_PROXYHEADER: -#endif -#if LIBCURL_VERSION_NUM >= 0x073100 /* Available since 7.49.0 */ case CURLOPT_CONNECT_TO: -#endif { zval *current; HashTable *ph; @@ -2185,16 +2004,12 @@ static zend_result _php_curl_setopt(php_curl *ch, zend_long option, zval *zvalue case CURLOPT_RESOLVE: name = "CURLOPT_RESOLVE"; break; -#if LIBCURL_VERSION_NUM >= 0x072500 /* Available since 7.37.0 */ case CURLOPT_PROXYHEADER: name = "CURLOPT_PROXYHEADER"; break; -#endif -#if LIBCURL_VERSION_NUM >= 0x073100 /* Available since 7.49.0 */ case CURLOPT_CONNECT_TO: name = "CURLOPT_CONNECT_TO"; break; -#endif } zend_type_error("%s(): The %s option must have an array value", get_active_function_name(), name); @@ -2316,7 +2131,6 @@ static zend_result _php_curl_setopt(php_curl *ch, zend_long option, zval *zvalue ch->handlers.write->method = PHP_CURL_USER; break; -#if LIBCURL_VERSION_NUM >= 0x072000 case CURLOPT_XFERINFOFUNCTION: curl_easy_setopt(ch->cp, CURLOPT_XFERINFOFUNCTION, curl_xferinfo); curl_easy_setopt(ch->cp, CURLOPT_XFERINFODATA, ch); @@ -2328,15 +2142,12 @@ static zend_result _php_curl_setopt(php_curl *ch, zend_long option, zval *zvalue } ZVAL_COPY(&ch->handlers.xferinfo->func_name, zvalue); break; -#endif /* Curl off_t options */ case CURLOPT_MAX_RECV_SPEED_LARGE: case CURLOPT_MAX_SEND_SPEED_LARGE: case CURLOPT_MAXFILESIZE_LARGE: -#if LIBCURL_VERSION_NUM >= 0x073b00 /* Available since 7.59.0 */ case CURLOPT_TIMEVALUE_LARGE: -#endif lval = zval_get_long(zvalue); error = curl_easy_setopt(ch->cp, option, (curl_off_t)lval); break; @@ -2608,9 +2419,7 @@ PHP_FUNCTION(curl_getinfo) double d_code; struct curl_certinfo *ci = NULL; zval listcode; -#if LIBCURL_VERSION_NUM >= 0x073d00 /* 7.61.0 */ curl_off_t co; -#endif array_init(return_value); @@ -2700,12 +2509,9 @@ PHP_FUNCTION(curl_getinfo) if (curl_easy_getinfo(ch->cp, CURLINFO_LOCAL_PORT, &l_code) == CURLE_OK) { CAAL("local_port", l_code); } -#if LIBCURL_VERSION_NUM >= 0x073200 /* Available since 7.50.0 */ if (curl_easy_getinfo(ch->cp, CURLINFO_HTTP_VERSION, &l_code) == CURLE_OK) { CAAL("http_version", l_code); } -#endif -#if LIBCURL_VERSION_NUM >= 0x073400 /* Available since 7.52.0 */ if (curl_easy_getinfo(ch->cp, CURLINFO_PROTOCOL, &l_code) == CURLE_OK) { CAAL("protocol", l_code); } @@ -2715,8 +2521,6 @@ PHP_FUNCTION(curl_getinfo) if (curl_easy_getinfo(ch->cp, CURLINFO_SCHEME, &s_code) == CURLE_OK) { CAAS("scheme", s_code); } -#endif -#if LIBCURL_VERSION_NUM >= 0x073d00 /* Available since 7.61.0 */ if (curl_easy_getinfo(ch->cp, CURLINFO_APPCONNECT_TIME_T, &co) == CURLE_OK) { CAAL("appconnect_time_us", co); } @@ -2738,7 +2542,6 @@ PHP_FUNCTION(curl_getinfo) if (curl_easy_getinfo(ch->cp, CURLINFO_TOTAL_TIME_T, &co) == CURLE_OK) { CAAL("total_time_us", co); } -#endif if (ch->header.str) { CAASTR("request_header", ch->header.str); } @@ -2834,7 +2637,6 @@ PHP_FUNCTION(curl_getinfo) } break; } -#if LIBCURL_VERSION_NUM >= 0x073700 /* Available since 7.55.0 */ case CURLINFO_OFF_T: { curl_off_t c_off; @@ -2845,7 +2647,6 @@ PHP_FUNCTION(curl_getinfo) } break; } -#endif default: RETURN_FALSE; } @@ -2956,10 +2757,6 @@ static void curl_free_obj(zend_object *object) zend_llist_clean(&ch->to_free->post); zend_llist_clean(&ch->to_free->stream); -#if LIBCURL_VERSION_NUM < 0x073800 /* 7.56.0 */ - zend_llist_clean(&ch->to_free->buffers); -#endif - zend_hash_destroy(ch->to_free->slist); efree(ch->to_free->slist); efree(ch->to_free); @@ -2984,9 +2781,7 @@ static void curl_free_obj(zend_object *object) efree(ch->handlers.read); _php_curl_free_callback(ch->handlers.progress); -#if LIBCURL_VERSION_NUM >= 0x072000 _php_curl_free_callback(ch->handlers.xferinfo); -#endif _php_curl_free_callback(ch->handlers.fnmatch); #if LIBCURL_VERSION_NUM >= 0x075400 _php_curl_free_callback(ch->handlers.sshhostkey); @@ -3059,13 +2854,11 @@ static void _php_curl_reset_handlers(php_curl *ch) ch->handlers.progress = NULL; } -#if LIBCURL_VERSION_NUM >= 0x072000 if (ch->handlers.xferinfo) { zval_ptr_dtor(&ch->handlers.xferinfo->func_name); efree(ch->handlers.xferinfo); ch->handlers.xferinfo = NULL; } -#endif if (ch->handlers.fnmatch) { zval_ptr_dtor(&ch->handlers.fnmatch->func_name); diff --git a/ext/curl/multi.c b/ext/curl/multi.c index 73cb37bab3604..6640a5d4670f5 100644 --- a/ext/curl/multi.c +++ b/ext/curl/multi.c @@ -365,7 +365,6 @@ PHP_FUNCTION(curl_multi_strerror) } /* }}} */ -#if LIBCURL_VERSION_NUM >= 0x072C00 /* Available since 7.44.0 */ static int _php_server_push_callback(CURL *parent_ch, CURL *easy, size_t num_headers, struct curl_pushheaders *push_headers, void *userp) /* {{{ */ { @@ -431,8 +430,6 @@ static int _php_server_push_callback(CURL *parent_ch, CURL *easy, size_t num_hea } /* }}} */ -#endif - static bool _php_curl_multi_setopt(php_curlm *mh, zend_long option, zval *zvalue, zval *return_value) /* {{{ */ { CURLMcode error = CURLM_OK; @@ -440,13 +437,11 @@ static bool _php_curl_multi_setopt(php_curlm *mh, zend_long option, zval *zvalue switch (option) { case CURLMOPT_PIPELINING: case CURLMOPT_MAXCONNECTS: -#if LIBCURL_VERSION_NUM >= 0x071e00 /* 7.30.0 */ case CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE: case CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE: case CURLMOPT_MAX_HOST_CONNECTIONS: case CURLMOPT_MAX_PIPELINE_LENGTH: case CURLMOPT_MAX_TOTAL_CONNECTIONS: -#endif #if LIBCURL_VERSION_NUM >= 0x074300 /* Available since 7.67.0 */ case CURLMOPT_MAX_CONCURRENT_STREAMS: #endif @@ -463,7 +458,6 @@ static bool _php_curl_multi_setopt(php_curlm *mh, zend_long option, zval *zvalue error = curl_multi_setopt(mh->multi, option, lval); break; } -#if LIBCURL_VERSION_NUM > 0x072D00 /* Available since 7.45.0 */ case CURLMOPT_PUSHFUNCTION: if (mh->handlers.server_push == NULL) { mh->handlers.server_push = ecalloc(1, sizeof(php_curl_callback)); @@ -479,7 +473,6 @@ static bool _php_curl_multi_setopt(php_curlm *mh, zend_long option, zval *zvalue } error = curl_multi_setopt(mh->multi, CURLMOPT_PUSHDATA, mh); break; -#endif default: zend_argument_value_error(2, "is not a valid cURL multi option"); error = CURLM_UNKNOWN_OPTION; diff --git a/ext/curl/sync-constants.php b/ext/curl/sync-constants.php index 22db954dd3dd3..a820281f6252e 100755 --- a/ext/curl/sync-constants.php +++ b/ext/curl/sync-constants.php @@ -12,7 +12,7 @@ const SOURCE_FILE = __DIR__ . '/curl_arginfo.h'; -const MIN_SUPPORTED_CURL_VERSION = '7.29.0'; +const MIN_SUPPORTED_CURL_VERSION = '7.61.0'; const IGNORED_CURL_CONSTANTS = [ 'CURLOPT_PROGRESSDATA', diff --git a/ext/curl/tests/curl_basic_023.phpt b/ext/curl/tests/curl_basic_023.phpt index dac40c46ca688..28e6dc888ee44 100644 --- a/ext/curl/tests/curl_basic_023.phpt +++ b/ext/curl/tests/curl_basic_023.phpt @@ -2,12 +2,6 @@ Test curl_getinfo() function with CURLINFO_HTTP_VERSION parameter --EXTENSIONS-- curl ---SKIPIF-- -= 7.50.0"); -} -?> --FILE-- = 7.52.0 --EXTENSIONS-- curl ---SKIPIF-- -= 7.52.0"); -} -?> --FILE-- = 7.56.0'); -?> --FILE-- Date: Mon, 29 Jan 2024 12:30:14 +0700 Subject: [PATCH 2/2] ext/curl: Update libcurl ver comparison preprocessors to contain human-friendly version names Adds missing human-friendly version number comments where missing. --- ext/curl/curl_private.h | 2 +- ext/curl/interface.c | 22 +++++++++++----------- ext/curl/multi.c | 2 +- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/ext/curl/curl_private.h b/ext/curl/curl_private.h index 904dca4048d50..aeef5937a0de8 100644 --- a/ext/curl/curl_private.h +++ b/ext/curl/curl_private.h @@ -75,7 +75,7 @@ typedef struct { php_curl_callback *progress; php_curl_callback *xferinfo; php_curl_callback *fnmatch; -#if LIBCURL_VERSION_NUM >= 0x075400 +#if LIBCURL_VERSION_NUM >= 0x075400 /* Available since 7.84.0 */ php_curl_callback *sshhostkey; #endif } php_curl_handlers; diff --git a/ext/curl/interface.c b/ext/curl/interface.c index 3d55ed3ac86dc..a4c8b941adc3b 100644 --- a/ext/curl/interface.c +++ b/ext/curl/interface.c @@ -293,20 +293,20 @@ PHP_MINFO_FUNCTION(curl) {"HTTPS_PROXY", CURL_VERSION_HTTPS_PROXY}, {"MULTI_SSL", CURL_VERSION_MULTI_SSL}, {"BROTLI", CURL_VERSION_BROTLI}, -#if LIBCURL_VERSION_NUM >= 0x074001 /* 7.64.1 */ +#if LIBCURL_VERSION_NUM >= 0x074001 /* Available since 7.64.1 */ {"ALTSVC", CURL_VERSION_ALTSVC}, #endif -#if LIBCURL_VERSION_NUM >= 0x074200 /* 7.66.0 */ +#if LIBCURL_VERSION_NUM >= 0x074200 /* Available since 7.66.0 */ {"HTTP3", CURL_VERSION_HTTP3}, #endif -#if LIBCURL_VERSION_NUM >= 0x074800 /* 7.72.0 */ +#if LIBCURL_VERSION_NUM >= 0x074800 /* Available since 7.72.0 */ {"UNICODE", CURL_VERSION_UNICODE}, {"ZSTD", CURL_VERSION_ZSTD}, #endif -#if LIBCURL_VERSION_NUM >= 0x074a00 /* 7.74.0 */ +#if LIBCURL_VERSION_NUM >= 0x074a00 /* Available since 7.74.0 */ {"HSTS", CURL_VERSION_HSTS}, #endif -#if LIBCURL_VERSION_NUM >= 0x074c00 /* 7.76.0 */ +#if LIBCURL_VERSION_NUM >= 0x074c00 /* Available since 7.76.0 */ {"GSASL", CURL_VERSION_GSASL}, #endif {NULL, 0} @@ -499,7 +499,7 @@ static HashTable *curl_get_gc(zend_object *object, zval **table, int *n) zend_get_gc_buffer_add_zval(gc_buffer, &curl->handlers.fnmatch->func_name); } -#if LIBCURL_VERSION_NUM >= 0x075400 +#if LIBCURL_VERSION_NUM >= 0x075400 /* Available since 7.84.0 */ if (curl->handlers.sshhostkey) { zend_get_gc_buffer_add_zval(gc_buffer, &curl->handlers.sshhostkey->func_name); } @@ -756,7 +756,7 @@ static size_t curl_xferinfo(void *clientp, curl_off_t dltotal, curl_off_t dlnow, } /* }}} */ -#if LIBCURL_VERSION_NUM >= 0x075400 +#if LIBCURL_VERSION_NUM >= 0x075400 /* Available since 7.84.0 */ static int curl_ssh_hostkeyfunction(void *clientp, int keytype, const char *key, size_t keylen) { php_curl *ch = (php_curl *)clientp; @@ -1057,7 +1057,7 @@ void init_curl_handle(php_curl *ch) ch->handlers.progress = NULL; ch->handlers.xferinfo = NULL; ch->handlers.fnmatch = NULL; -#if LIBCURL_VERSION_NUM >= 0x075400 +#if LIBCURL_VERSION_NUM >= 0x075400 /* Available since 7.84.0 */ ch->handlers.sshhostkey = NULL; #endif ch->clone = emalloc(sizeof(uint32_t)); @@ -1233,7 +1233,7 @@ void _php_setup_easy_copy_handlers(php_curl *ch, php_curl *source) _php_copy_callback(ch, &ch->handlers.progress, source->handlers.progress, CURLOPT_PROGRESSDATA); _php_copy_callback(ch, &ch->handlers.xferinfo, source->handlers.xferinfo, CURLOPT_XFERINFODATA); _php_copy_callback(ch, &ch->handlers.fnmatch, source->handlers.fnmatch, CURLOPT_FNMATCH_DATA); -#if LIBCURL_VERSION_NUM >= 0x075400 +#if LIBCURL_VERSION_NUM >= 0x075400 /* Available since 7.84.0 */ _php_copy_callback(ch, &ch->handlers.sshhostkey, source->handlers.sshhostkey, CURLOPT_SSH_HOSTKEYDATA); #endif @@ -2783,7 +2783,7 @@ static void curl_free_obj(zend_object *object) _php_curl_free_callback(ch->handlers.progress); _php_curl_free_callback(ch->handlers.xferinfo); _php_curl_free_callback(ch->handlers.fnmatch); -#if LIBCURL_VERSION_NUM >= 0x075400 +#if LIBCURL_VERSION_NUM >= 0x075400 /* Available since 7.84.0 */ _php_curl_free_callback(ch->handlers.sshhostkey); #endif @@ -2866,7 +2866,7 @@ static void _php_curl_reset_handlers(php_curl *ch) ch->handlers.fnmatch = NULL; } -#if LIBCURL_VERSION_NUM >= 0x075400 +#if LIBCURL_VERSION_NUM >= 0x075400 /* Available since 7.84.0 */ if (ch->handlers.sshhostkey) { zval_ptr_dtor(&ch->handlers.sshhostkey->func_name); efree(ch->handlers.sshhostkey); diff --git a/ext/curl/multi.c b/ext/curl/multi.c index 6640a5d4670f5..a61066b5a6c7c 100644 --- a/ext/curl/multi.c +++ b/ext/curl/multi.c @@ -449,7 +449,7 @@ static bool _php_curl_multi_setopt(php_curlm *mh, zend_long option, zval *zvalue zend_long lval = zval_get_long(zvalue); if (option == CURLMOPT_PIPELINING && (lval & 1)) { -#if LIBCURL_VERSION_NUM >= 0x073e00 /* 7.62.0 */ +#if LIBCURL_VERSION_NUM >= 0x073e00 /* Available since 7.62.0 */ php_error_docref(NULL, E_WARNING, "CURLPIPE_HTTP1 is no longer supported"); #else php_error_docref(NULL, E_DEPRECATED, "CURLPIPE_HTTP1 is deprecated");