Expose new constants from libcurl 7.62 to 7.80

This commit is contained in:
Pierrick Charron 2022-06-05 14:50:23 -04:00
parent 1bcd8d394a
commit cec20f615d
No known key found for this signature in database
GPG key ID: 286AF1F9897469DC
4 changed files with 261 additions and 1 deletions

View file

@ -295,6 +295,22 @@ PHP_MINFO_FUNCTION(curl)
#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
#if LIBCURL_VERSION_NUM >= 0x074200 /* 7.66.0 */
{"HTTP3", CURL_VERSION_HTTP3},
#endif
#if LIBCURL_VERSION_NUM >= 0x074800 /* 7.72.0 */
{"UNICODE", CURL_VERSION_UNICODE},
{"ZSTD", CURL_VERSION_ZSTD},
#endif
#if LIBCURL_VERSION_NUM >= 0x074a00 /* 7.74.0 */
{"HSTS", CURL_VERSION_HSTS},
#endif
#if LIBCURL_VERSION_NUM >= 0x074c00 /* 7.76.0 */
{"GSASL", CURL_VERSION_GSASL},
#endif
{NULL, 0}
};
@ -703,6 +719,7 @@ PHP_MINIT_FUNCTION(curl)
REGISTER_CURL_CONSTANT(CURLOPT_LOCALPORTRANGE);
/* Available since 7.15.3 */
REGISTER_CURL_CONSTANT(CURLFTPMETHOD_DEFAULT);
REGISTER_CURL_CONSTANT(CURLFTPMETHOD_MULTICWD);
REGISTER_CURL_CONSTANT(CURLFTPMETHOD_NOCWD);
REGISTER_CURL_CONSTANT(CURLFTPMETHOD_SINGLECWD);
@ -1151,6 +1168,8 @@ PHP_MINIT_FUNCTION(curl)
#if LIBCURL_VERSION_NUM >= 0x073E00 /* Available since 7.62.0 */
REGISTER_CURL_CONSTANT(CURLOPT_DOH_URL);
REGISTER_CURL_CONSTANT(CURLOPT_UPKEEP_INTERVAL_MS);
REGISTER_CURL_CONSTANT(CURLOPT_UPLOAD_BUFFERSIZE);
#endif
#if LIBCURL_VERSION_NUM >= 0x074000 /* Available since 7.64.0 */
@ -1158,9 +1177,41 @@ PHP_MINIT_FUNCTION(curl)
#endif
#if LIBCURL_VERSION_NUM >= 0x074001 /* Available since 7.64.1 */
REGISTER_CURL_CONSTANT(CURLALTSVC_H1);
REGISTER_CURL_CONSTANT(CURLALTSVC_H2);
REGISTER_CURL_CONSTANT(CURLALTSVC_H3);
REGISTER_CURL_CONSTANT(CURLALTSVC_READONLYFILE);
REGISTER_CURL_CONSTANT(CURLOPT_ALTSVC);
REGISTER_CURL_CONSTANT(CURLOPT_ALTSVC_CTRL);
REGISTER_CURL_CONSTANT(CURL_VERSION_ALTSVC);
#endif
#if LIBCURL_VERSION_NUM >= 0x074100 /* Available since 7.65.0 */
REGISTER_CURL_CONSTANT(CURLOPT_MAXAGE_CONN);
#endif
#if LIBCURL_VERSION_NUM >= 0x074200 /* Available since 7.66.0 */
REGISTER_CURL_CONSTANT(CURLOPT_SASL_AUTHZID);
REGISTER_CURL_CONSTANT(CURL_VERSION_HTTP3);
REGISTER_CURL_CONSTANT(CURLINFO_RETRY_AFTER);
#endif
#if LIBCURL_VERSION_NUM >= 0x074300 /* Available since 7.67.0 */
REGISTER_CURL_CONSTANT(CURLMOPT_MAX_CONCURRENT_STREAMS);
#endif
#if LIBCURL_VERSION_NUM >= 0x074400 /* Available since 7.68.0 */
REGISTER_CURL_CONSTANT(CURLSSLOPT_NO_PARTIALCHAIN);
#endif
#if LIBCURL_VERSION_NUM >= 0x074500 /* Available since 7.69.0 */
REGISTER_CURL_CONSTANT(CURLOPT_MAIL_RCPT_ALLLOWFAILS);
#endif
#if LIBCURL_VERSION_NUM >= 0x074600 /* Available since 7.70.0 */
REGISTER_CURL_CONSTANT(CURLSSLOPT_REVOKE_BEST_EFFORT);
#endif
#if LIBCURL_VERSION_NUM >= 0x074700 /* Available since 7.71.0 */
REGISTER_CURL_CONSTANT(CURLOPT_ISSUERCERT_BLOB);
REGISTER_CURL_CONSTANT(CURLOPT_PROXY_ISSUERCERT);
@ -1169,6 +1220,87 @@ PHP_MINIT_FUNCTION(curl)
REGISTER_CURL_CONSTANT(CURLOPT_PROXY_SSLKEY_BLOB);
REGISTER_CURL_CONSTANT(CURLOPT_SSLCERT_BLOB);
REGISTER_CURL_CONSTANT(CURLOPT_SSLKEY_BLOB);
REGISTER_CURL_CONSTANT(CURLPROTO_MQTT);
REGISTER_CURL_CONSTANT(CURLSSLOPT_NATIVE_CA);
#endif
#if LIBCURL_VERSION_NUM >= 0x074800 /* Available since 7.72.0 */
REGISTER_CURL_CONSTANT(CURL_VERSION_UNICODE);
REGISTER_CURL_CONSTANT(CURL_VERSION_ZSTD);
#endif
#if LIBCURL_VERSION_NUM >= 0x074900 /* Available since 7.73.0 */
REGISTER_CURL_CONSTANT(CURLE_PROXY);
REGISTER_CURL_CONSTANT(CURLINFO_PROXY_ERROR);
REGISTER_CURL_CONSTANT(CURLOPT_SSL_EC_CURVES);
REGISTER_CURL_CONSTANT(CURLPX_BAD_ADDRESS_TYPE);
REGISTER_CURL_CONSTANT(CURLPX_BAD_VERSION);
REGISTER_CURL_CONSTANT(CURLPX_CLOSED);
REGISTER_CURL_CONSTANT(CURLPX_GSSAPI);
REGISTER_CURL_CONSTANT(CURLPX_GSSAPI_PERMSG);
REGISTER_CURL_CONSTANT(CURLPX_GSSAPI_PROTECTION);
REGISTER_CURL_CONSTANT(CURLPX_IDENTD);
REGISTER_CURL_CONSTANT(CURLPX_IDENTD_DIFFER);
REGISTER_CURL_CONSTANT(CURLPX_LONG_HOSTNAME);
REGISTER_CURL_CONSTANT(CURLPX_LONG_PASSWD);
REGISTER_CURL_CONSTANT(CURLPX_LONG_USER);
REGISTER_CURL_CONSTANT(CURLPX_NO_AUTH);
REGISTER_CURL_CONSTANT(CURLPX_OK);
REGISTER_CURL_CONSTANT(CURLPX_RECV_ADDRESS);
REGISTER_CURL_CONSTANT(CURLPX_RECV_AUTH);
REGISTER_CURL_CONSTANT(CURLPX_RECV_CONNECT);
REGISTER_CURL_CONSTANT(CURLPX_RECV_REQACK);
REGISTER_CURL_CONSTANT(CURLPX_REPLY_ADDRESS_TYPE_NOT_SUPPORTED);
REGISTER_CURL_CONSTANT(CURLPX_REPLY_COMMAND_NOT_SUPPORTED);
REGISTER_CURL_CONSTANT(CURLPX_REPLY_CONNECTION_REFUSED);
REGISTER_CURL_CONSTANT(CURLPX_REPLY_GENERAL_SERVER_FAILURE);
REGISTER_CURL_CONSTANT(CURLPX_REPLY_HOST_UNREACHABLE);
REGISTER_CURL_CONSTANT(CURLPX_REPLY_NETWORK_UNREACHABLE);
REGISTER_CURL_CONSTANT(CURLPX_REPLY_NOT_ALLOWED);
REGISTER_CURL_CONSTANT(CURLPX_REPLY_TTL_EXPIRED);
REGISTER_CURL_CONSTANT(CURLPX_REPLY_UNASSIGNED);
REGISTER_CURL_CONSTANT(CURLPX_REQUEST_FAILED);
REGISTER_CURL_CONSTANT(CURLPX_RESOLVE_HOST);
REGISTER_CURL_CONSTANT(CURLPX_SEND_AUTH);
REGISTER_CURL_CONSTANT(CURLPX_SEND_CONNECT);
REGISTER_CURL_CONSTANT(CURLPX_SEND_REQUEST);
REGISTER_CURL_CONSTANT(CURLPX_UNKNOWN_FAIL);
REGISTER_CURL_CONSTANT(CURLPX_UNKNOWN_MODE);
REGISTER_CURL_CONSTANT(CURLPX_USER_REJECTED);
#endif
#if LIBCURL_VERSION_NUM >= 0x074a00 /* Available since 7.74.0 */
REGISTER_CURL_CONSTANT(CURLHSTS_ENABLE);
REGISTER_CURL_CONSTANT(CURLHSTS_READONLYFILE);
REGISTER_CURL_CONSTANT(CURLOPT_HSTS);
REGISTER_CURL_CONSTANT(CURLOPT_HSTS_CTRL);
REGISTER_CURL_CONSTANT(CURL_VERSION_HSTS);
#endif
#if LIBCURL_VERSION_NUM >= 0x074b00 /* Available since 7.75.0 */
REGISTER_CURL_CONSTANT(CURLAUTH_AWS_SIGV4);
REGISTER_CURL_CONSTANT(CURLOPT_AWS_SIGV4);
#endif
#if LIBCURL_VERSION_NUM >= 0x074c00 /* Available since 7.76.0 */
REGISTER_CURL_CONSTANT(CURLINFO_REFERER);
REGISTER_CURL_CONSTANT(CURLOPT_DOH_SSL_VERIFYHOST);
REGISTER_CURL_CONSTANT(CURLOPT_DOH_SSL_VERIFYPEER);
REGISTER_CURL_CONSTANT(CURLOPT_DOH_SSL_VERIFYSTATUS);
REGISTER_CURL_CONSTANT(CURL_VERSION_GSASL);
#endif
#if LIBCURL_VERSION_NUM >= 0x074d00 /* Available since 7.77.0 */
REGISTER_CURL_CONSTANT(CURLOPT_CAINFO_BLOB);
REGISTER_CURL_CONSTANT(CURLOPT_PROXY_CAINFO_BLOB);
REGISTER_CURL_CONSTANT(CURLSSLOPT_AUTO_CLIENT_CERT);
#endif
#if LIBCURL_VERSION_NUM >= 0x075000 /* Available since 7.80.0 */
REGISTER_CURL_CONSTANT(CURLOPT_MAXLIFETIME_CONN);
REGISTER_CURL_CONSTANT(CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256);
#endif
REGISTER_CURL_CONSTANT(CURLOPT_SAFE_UPLOAD);
@ -2545,8 +2677,32 @@ static zend_result _php_curl_setopt(php_curl *ch, zend_long option, zval *zvalue
#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:
#endif
#if LIBCURL_VERSION_NUM >= 0x074000 /* Available since 7.64.0 */
case CURLOPT_HTTP09_ALLOWED:
#endif
#if LIBCURL_VERSION_NUM >= 0x074001 /* Available since 7.64.1 */
case CURLOPT_ALTSVC_CTRL:
#endif
#if LIBCURL_VERSION_NUM >= 0x074100 /* Available since 7.65.0 */
case CURLOPT_MAXAGE_CONN:
#endif
#if LIBCURL_VERSION_NUM >= 0x074500 /* Available since 7.69.0 */
case CURLOPT_MAIL_RCPT_ALLLOWFAILS:
#endif
#if LIBCURL_VERSION_NUM >= 0x074a00 /* Available since 7.74.0 */
case CURLOPT_HSTS_CTRL:
#endif
#if LIBCURL_VERSION_NUM >= 0x074c00 /* Available since 7.76.0 */
case CURLOPT_DOH_SSL_VERIFYHOST:
case CURLOPT_DOH_SSL_VERIFYPEER:
case CURLOPT_DOH_SSL_VERIFYSTATUS:
#endif
#if LIBCURL_VERSION_NUM >= 0x075000 /* Available since 7.80.0 */
case CURLOPT_MAXLIFETIME_CONN:
#endif
lval = zval_get_long(zvalue);
if ((option == CURLOPT_PROTOCOLS || option == CURLOPT_REDIR_PROTOCOLS) &&
@ -2644,8 +2800,23 @@ static zend_result _php_curl_setopt(php_curl *ch, zend_long option, zval *zvalue
case CURLOPT_PROXY_TLS13_CIPHERS:
case CURLOPT_TLS13_CIPHERS:
#endif
#if LIBCURL_VERSION_NUM >= 0x074001 /* Available since 7.64.1 */
case CURLOPT_ALTSVC:
#endif
#if LIBCURL_VERSION_NUM >= 0x074200 /* Available since 7.66.0 */
case CURLOPT_SASL_AUTHZID:
#endif
#if LIBCURL_VERSION_NUM >= 0x074700 /* Available since 7.71.0 */
case CURLOPT_PROXY_ISSUERCERT:
#endif
#if LIBCURL_VERSION_NUM >= 0x074900 /* Available since 7.73.0 */
case CURLOPT_SSL_EC_CURVES:
#endif
#if LIBCURL_VERSION_NUM >= 0x074b00 /* Available since 7.75.0 */
case CURLOPT_AWS_SIGV4:
#endif
#if LIBCURL_VERSION_NUM >= 0x075000 /* Available since 7.80.0 */
case CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256:
#endif
{
zend_string *tmp_str;
@ -2672,6 +2843,9 @@ static zend_result _php_curl_setopt(php_curl *ch, zend_long option, zval *zvalue
#endif
#if LIBCURL_VERSION_NUM >= 0x073E00 /* Available since 7.62.0 */
case CURLOPT_DOH_URL:
#endif
#if LIBCURL_VERSION_NUM >= 0x074a00 /* Available since 7.74.0 */
case CURLOPT_HSTS:
#endif
case CURLOPT_KRBLEVEL:
{
@ -3072,6 +3246,10 @@ static zend_result _php_curl_setopt(php_curl *ch, zend_long option, zval *zvalue
case CURLOPT_PROXY_SSLKEY_BLOB:
case CURLOPT_SSLCERT_BLOB:
case CURLOPT_SSLKEY_BLOB:
#if LIBCURL_VERSION_NUM >= 0x074d00 /* Available since 7.77.0 */
case CURLOPT_CAINFO_BLOB:
case CURLOPT_PROXY_CAINFO_BLOB:
#endif
{
zend_string *tmp_str;
zend_string *str = zval_get_tmp_string(zvalue, &tmp_str);