1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 00:02:20 +01:00

ext/curl: Bump minimum Curl version to >= 7.61.0 (#13259)

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.
This commit is contained in:
Ayesh Karunaratne
2024-01-31 20:48:17 +07:00
committed by GitHub
parent e30c11f599
commit edb9f65f16
12 changed files with 21 additions and 566 deletions

1
NEWS
View File

@@ -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)

View File

@@ -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.

View File

@@ -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)

View File

@@ -472,13 +472,11 @@ const CURLOPT_WRITEFUNCTION = UNKNOWN;
* @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 @@ const CURLE_SSL_ENGINE_SETFAILED = UNKNOWN;
* @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 @@ const CURLM_OK = UNKNOWN;
* @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 CURL_REDIR_POST_303 = UNKNOWN;
*/
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 @@ const CURLMOPT_MAX_PIPELINE_LENGTH = UNKNOWN;
* @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 @@ const CURL_HTTP_VERSION_2_0 = UNKNOWN;
* @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 @@ const CURL_SSLVERSION_TLSv1_1 = UNKNOWN;
* @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 @@ const CURLOPT_SSL_ENABLE_ALPN = UNKNOWN;
* @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 @@ const CURLOPT_HEADEROPT = UNKNOWN;
* @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 @@ const CURLAUTH_NEGOTIATE = UNKNOWN;
* @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 @@ const CURL_VERSION_KERBEROS5 = UNKNOWN;
* @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 @@ const CURLOPT_PATH_AS_IS = UNKNOWN;
* @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 @@ const CURLPIPE_HTTP1 = UNKNOWN;
* @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 @@ const CURL_PUSH_OK = UNKNOWN;
* @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 @@ const CURL_HTTP_VERSION_2TLS = UNKNOWN;
* @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 @@ const CURLOPT_CONNECT_TO = UNKNOWN;
* @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 @@ const CURLE_WEIRD_SERVER_REPLY = UNKNOWN;
* @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 @@ const CURLOPT_PROXY_TLSAUTH_USERNAME = UNKNOWN;
* @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 @@ const CURL_MAX_READ_SIZE = UNKNOWN;
* @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 @@ const CURL_SSLVERSION_MAX_TLSv1_3 = UNKNOWN;
* @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 @@ const CURLOPT_REQUEST_TARGET = UNKNOWN;
* @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 @@ const CURLOPT_SSH_COMPRESSION = UNKNOWN;
* @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 @@ const CURL_VERSION_BROTLI = UNKNOWN;
* @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 @@ const CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS = UNKNOWN;
* @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 @@ const CURLOPT_DNS_SHUFFLE_ADDRESSES = UNKNOWN;
* @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 @@ const CURLOPT_PROXY_TLS13_CIPHERS = UNKNOWN;
* @cvalue CURLOPT_TLS13_CIPHERS
*/
const CURLOPT_TLS13_CIPHERS = UNKNOWN;
#endif
#if LIBCURL_VERSION_NUM >= 0x073E00 /* Available since 7.62.0 */
/**

248
ext/curl/curl_arginfo.h generated
View File

@@ -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

View File

@@ -73,11 +73,9 @@ 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
#if LIBCURL_VERSION_NUM >= 0x075400 /* Available since 7.84.0 */
php_curl_callback *sshhostkey;
#endif
} php_curl_handlers;
@@ -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;
};

View File

@@ -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,42 +285,28 @@ 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 */
#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}
@@ -505,17 +491,15 @@ 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);
}
#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);
}
@@ -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,9 +755,8 @@ static size_t curl_xferinfo(void *clientp, curl_off_t dltotal, curl_off_t dlnow,
return rval;
}
/* }}} */
#endif
#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;
@@ -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,11 +1055,9 @@ 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
#if LIBCURL_VERSION_NUM >= 0x075400 /* Available since 7.84.0 */
ch->handlers.sshhostkey = NULL;
#endif
ch->clone = emalloc(sizeof(uint32_t));
@@ -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,11 +1231,9 @@ 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
#if LIBCURL_VERSION_NUM >= 0x075400 /* Available since 7.84.0 */
_php_copy_callback(ch, &ch->handlers.sshhostkey, source->handlers.sshhostkey, CURLOPT_SSH_HOSTKEYDATA);
#endif
@@ -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,11 +2781,9 @@ 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
#if LIBCURL_VERSION_NUM >= 0x075400 /* Available since 7.84.0 */
_php_curl_free_callback(ch->handlers.sshhostkey);
#endif
@@ -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);
@@ -3073,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);

View File

@@ -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
@@ -454,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");
@@ -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;

View File

@@ -12,7 +12,7 @@ const CURL_DOC_FILE = 'https://curl.se/libcurl/c/symbols-in-versions.html';
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',

View File

@@ -2,12 +2,6 @@
Test curl_getinfo() function with CURLINFO_HTTP_VERSION parameter
--EXTENSIONS--
curl
--SKIPIF--
<?php $curl_version = curl_version();
if ($curl_version['version_number'] < 0x073200) {
exit("skip: test works only with curl >= 7.50.0");
}
?>
--FILE--
<?php

View File

@@ -2,12 +2,6 @@
Test curl_getinfo() function with CURLINFO_* from curl >= 7.52.0
--EXTENSIONS--
curl
--SKIPIF--
<?php $curl_version = curl_version();
if ($curl_version['version_number'] < 0x073400) {
exit("skip: test works only with curl >= 7.52.0");
}
?>
--FILE--
<?php

View File

@@ -2,10 +2,6 @@
CURL file uploading from stream
--EXTENSIONS--
curl
--SKIPIF--
<?php
if (curl_version()['version_number'] < 0x73800) die('skip requires curl >= 7.56.0');
?>
--FILE--
<?php
include 'server.inc';