X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=src%2Fphp_http_client_curl.c;h=915b8fc31f506ccf1aec46abd6a343bd5d7cd30d;hp=e68a72d2a3c0823da8f6ec8a2415b181e905b9fb;hb=701840587c7b8ddb35259ac3de5c988e0eefa805;hpb=f6fde6989bec42e31107687fd04d44340fad4cf8 diff --git a/src/php_http_client_curl.c b/src/php_http_client_curl.c index e68a72d..915b8fc 100644 --- a/src/php_http_client_curl.c +++ b/src/php_http_client_curl.c @@ -1351,6 +1351,9 @@ static void php_http_curle_options_init(php_http_options_t *registry) opt->flags |= PHP_HTTP_CURLE_OPTION_CHECK_STRLEN; } #endif +#if PHP_HTTP_CURL_VERSION(7,75,0) + php_http_option_register(registry, ZEND_STRL("aws_sigv4"), CURLOPT_AWS_SIGV4, IS_STRING); +#endif /* redirects */ if ((opt = php_http_option_register(registry, ZEND_STRL("redirect"), CURLOPT_FOLLOWLOCATION, IS_LONG))) { @@ -1680,18 +1683,30 @@ static void php_http_curle_options_init(php_http_options_t *registry) } #if PHP_HTTP_CURL_VERSION(7,64,1) +# if !PHP_HTTP_HAVE_LIBCURL_ALT_SVC + if (PHP_HTTP_CURL_FEATURE(CURL_VERSION_ALTSVC)) { +# endif if ((opt = php_http_option_register(registry, ZEND_STRL("altsvc_ctrl"), CURLOPT_ALTSVC_CTRL, IS_LONG))) { opt->setter = php_http_curle_option_set_altsvc_ctrl; } if ((opt = php_http_option_register(registry, ZEND_STRL("altsvc"), CURLOPT_ALTSVC, IS_STRING))) { opt->flags |= PHP_HTTP_CURLE_OPTION_CHECK_BASEDIR; } +# if !PHP_HTTP_HAVE_LIBCURL_ALT_SVC + } +# endif #endif #if PHP_HTTP_CURL_VERSION(7,74,0) +# if !PHP_HTTP_HAVE_LIBCURL_HSTS + if (PHP_HTTP_CURL_FEATURE(CURL_VERSION_HSTS)) { +# endif php_http_option_register(registry, ZEND_STRL("hsts_ctrl"), CURLOPT_HSTS_CTRL, IS_LONG); if ((opt = php_http_option_register(registry, ZEND_STRL("hsts"), CURLOPT_HSTS, IS_STRING))) { opt->flags |= PHP_HTTP_CURLE_OPTION_CHECK_BASEDIR; } +# if !PHP_HTTP_HAVE_LIBCURL_HSTS + } +# endif #endif } @@ -2657,13 +2672,13 @@ php_http_client_ops_t *php_http_client_curl_get_ops(void) return &php_http_client_curl_ops; } -#define REGISTER_NS_STRING_OR_NULL_CONSTANT(ns, name, str, flags) \ - do { \ - if ((str) != NULL) { \ - REGISTER_NS_STRING_CONSTANT(ns, name, str, flags); \ - } else { \ - REGISTER_NS_NULL_CONSTANT(ns, name, flags); \ - } \ +#define REGISTER_NS_STRING_OR_NULL_CONSTANT(ns, name, str, flags) \ + do { \ + if ((str) != NULL) { \ + REGISTER_NS_STRING_CONSTANT(ns, name, str, flags); \ + } else { \ + REGISTER_NS_NULL_CONSTANT(ns, name, flags); \ + } \ } while (0) PHP_MINIT_FUNCTION(http_client_curl) @@ -2777,11 +2792,13 @@ PHP_MINIT_FUNCTION(http_client_curl) REGISTER_NS_STRING_OR_NULL_CONSTANT("http\\Client\\Curl\\Versions", "ARES", info->ares, CONST_CS|CONST_PERSISTENT); REGISTER_NS_STRING_OR_NULL_CONSTANT("http\\Client\\Curl\\Versions", "IDN", info->libidn, CONST_CS|CONST_PERSISTENT); tmp_ver_init(); - tmp_ptr = zend_print_ulong_to_buf(tmp_end, info->iconv_ver_num & 0xf); - tmp_end = tmp_ptr - 1; - tmp_ptr = zend_print_ulong_to_buf(tmp_end, info->iconv_ver_num >> 8); - *tmp_end = '.'; - REGISTER_NS_STRING_OR_NULL_CONSTANT("http\\Client\\Curl\\Versions", "ICONV", tmp_ptr, CONST_CS|CONST_PERSISTENT); + if (info->iconv_ver_num) { + tmp_ptr = zend_print_ulong_to_buf(tmp_end, info->iconv_ver_num & 0xf); + tmp_end = tmp_ptr - 1; + tmp_ptr = zend_print_ulong_to_buf(tmp_end, info->iconv_ver_num >> 8); + *tmp_end = '.'; + } + REGISTER_NS_STRING_OR_NULL_CONSTANT("http\\Client\\Curl\\Versions", "ICONV", *tmp_ptr ? tmp_ptr : NULL, CONST_CS|CONST_PERSISTENT); #if PHP_HTTP_CURL_VERSION(7,57,0) REGISTER_NS_STRING_OR_NULL_CONSTANT("http\\Client\\Curl\\Versions", "BROTLI", info->brotli_version, CONST_CS|CONST_PERSISTENT); #endif @@ -2871,6 +2888,9 @@ PHP_MINIT_FUNCTION(http_client_curl) #endif #if PHP_HTTP_CURL_VERSION(7,61,0) REGISTER_NS_LONG_CONSTANT("http\\Client\\Curl", "AUTH_BEARER", CURLAUTH_BEARER, CONST_CS|CONST_PERSISTENT); +#endif +#if PHP_HTTP_CURL_VERSION(7,75,0) + REGISTER_NS_LONG_CONSTANT("http\\Client\\Curl", "AWS_SIGV4", CURLAUTH_AWS_SIGV4, CONST_CS|CONST_PERSISTENT); #endif REGISTER_NS_LONG_CONSTANT("http\\Client\\Curl", "AUTH_ANY", CURLAUTH_ANY, CONST_CS|CONST_PERSISTENT);