|
|
|
@ -568,6 +568,9 @@ PHP_MINFO_FUNCTION(curl) |
|
|
|
#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 |
|
|
|
{NULL, 0} |
|
|
|
}; |
|
|
|
@ -1324,8 +1327,70 @@ PHP_MINIT_FUNCTION(curl) |
|
|
|
REGISTER_CURL_CONSTANT(CURLOPT_TCP_FASTOPEN); |
|
|
|
#endif |
|
|
|
|
|
|
|
#if LIBCURL_VERSION_NUM >= 0x073200 /* Available since 7.50.0 */ |
|
|
|
REGISTER_CURL_CONSTANT(CURLINFO_HTTP_VERSION); |
|
|
|
#endif |
|
|
|
|
|
|
|
#if LIBCURL_VERSION_NUM >= 0x073300 /* Available since 7.51.0 */ |
|
|
|
REGISTER_CURL_CONSTANT(CURLE_WEIRD_SERVER_REPLY); |
|
|
|
REGISTER_CURL_CONSTANT(CURLOPT_KEEP_SENDING_ON_ERROR); |
|
|
|
#endif |
|
|
|
|
|
|
|
#if LIBCURL_VERSION_NUM >= 0x073400 /* Available since 7.52.0 */ |
|
|
|
REGISTER_CURL_CONSTANT(CURL_SSLVERSION_TLSv1_3); |
|
|
|
REGISTER_CURL_CONSTANT(CURL_VERSION_HTTPS_PROXY); |
|
|
|
REGISTER_CURL_CONSTANT(CURLINFO_PROTOCOL); |
|
|
|
REGISTER_CURL_CONSTANT(CURLINFO_PROXY_SSL_VERIFYRESULT); |
|
|
|
REGISTER_CURL_CONSTANT(CURLINFO_SCHEME); |
|
|
|
REGISTER_CURL_CONSTANT(CURLOPT_PRE_PROXY); |
|
|
|
REGISTER_CURL_CONSTANT(CURLOPT_PROXY_CAINFO); |
|
|
|
REGISTER_CURL_CONSTANT(CURLOPT_PROXY_CAPATH); |
|
|
|
REGISTER_CURL_CONSTANT(CURLOPT_PROXY_CRLFILE); |
|
|
|
REGISTER_CURL_CONSTANT(CURLOPT_PROXY_KEYPASSWD); |
|
|
|
REGISTER_CURL_CONSTANT(CURLOPT_PROXY_PINNEDPUBLICKEY); |
|
|
|
REGISTER_CURL_CONSTANT(CURLOPT_PROXY_SSL_CIPHER_LIST); |
|
|
|
REGISTER_CURL_CONSTANT(CURLOPT_PROXY_SSL_OPTIONS); |
|
|
|
REGISTER_CURL_CONSTANT(CURLOPT_PROXY_SSL_VERIFYHOST); |
|
|
|
REGISTER_CURL_CONSTANT(CURLOPT_PROXY_SSL_VERIFYPEER); |
|
|
|
REGISTER_CURL_CONSTANT(CURLOPT_PROXY_SSLCERT); |
|
|
|
REGISTER_CURL_CONSTANT(CURLOPT_PROXY_SSLCERTTYPE); |
|
|
|
REGISTER_CURL_CONSTANT(CURLOPT_PROXY_SSLKEY); |
|
|
|
REGISTER_CURL_CONSTANT(CURLOPT_PROXY_SSLKEYTYPE); |
|
|
|
REGISTER_CURL_CONSTANT(CURLOPT_PROXY_SSLVERSION); |
|
|
|
REGISTER_CURL_CONSTANT(CURLOPT_PROXY_TLSAUTH_PASSWORD); |
|
|
|
REGISTER_CURL_CONSTANT(CURLOPT_PROXY_TLSAUTH_TYPE); |
|
|
|
REGISTER_CURL_CONSTANT(CURLOPT_PROXY_TLSAUTH_USERNAME); |
|
|
|
REGISTER_CURL_CONSTANT(CURLPROXY_HTTPS); |
|
|
|
#endif |
|
|
|
|
|
|
|
#if LIBCURL_VERSION_NUM >= 0x073500 /* Available since 7.53.0 */ |
|
|
|
REGISTER_CURL_CONSTANT(CURL_MAX_READ_SIZE); |
|
|
|
REGISTER_CURL_CONSTANT(CURLOPT_ABSTRACT_UNIX_SOCKET); |
|
|
|
#endif |
|
|
|
|
|
|
|
#if LIBCURL_VERSION_NUM >= 0x073600 /* Available since 7.54.0 */ |
|
|
|
REGISTER_CURL_CONSTANT(CURL_SSLVERSION_MAX_DEFAULT); |
|
|
|
REGISTER_CURL_CONSTANT(CURL_SSLVERSION_MAX_NONE); |
|
|
|
REGISTER_CURL_CONSTANT(CURL_SSLVERSION_MAX_TLSv1_0); |
|
|
|
REGISTER_CURL_CONSTANT(CURL_SSLVERSION_MAX_TLSv1_1); |
|
|
|
REGISTER_CURL_CONSTANT(CURL_SSLVERSION_MAX_TLSv1_2); |
|
|
|
REGISTER_CURL_CONSTANT(CURL_SSLVERSION_MAX_TLSv1_3); |
|
|
|
REGISTER_CURL_CONSTANT(CURLOPT_SUPPRESS_CONNECT_HEADERS); |
|
|
|
#endif |
|
|
|
|
|
|
|
#if LIBCURL_VERSION_NUM >= 0x073601 /* Available since 7.54.1 */ |
|
|
|
REGISTER_CURL_CONSTANT(CURLAUTH_GSSAPI); |
|
|
|
#endif |
|
|
|
|
|
|
|
#if LIBCURL_VERSION_NUM >= 0x073700 /* Available since 7.55.0 */ |
|
|
|
REGISTER_CURL_CONSTANT(CURLINFO_CONTENT_LENGTH_DOWNLOAD_T); |
|
|
|
REGISTER_CURL_CONSTANT(CURLINFO_CONTENT_LENGTH_UPLOAD_T); |
|
|
|
REGISTER_CURL_CONSTANT(CURLINFO_SIZE_DOWNLOAD_T); |
|
|
|
REGISTER_CURL_CONSTANT(CURLINFO_SIZE_UPLOAD_T); |
|
|
|
REGISTER_CURL_CONSTANT(CURLINFO_SPEED_DOWNLOAD_T); |
|
|
|
REGISTER_CURL_CONSTANT(CURLINFO_SPEED_UPLOAD_T); |
|
|
|
REGISTER_CURL_CONSTANT(CURLOPT_REQUEST_TARGET); |
|
|
|
REGISTER_CURL_CONSTANT(CURLOPT_SOCKS5_AUTH); |
|
|
|
#endif |
|
|
|
|
|
|
|
REGISTER_CURL_CONSTANT(CURLOPT_SAFE_UPLOAD); |
|
|
|
@ -2187,6 +2252,22 @@ static int _php_curl_setopt(php_curl *ch, zend_long option, zval *zvalue) /* {{{ |
|
|
|
#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 |
|
|
|
|
|
|
|
lval = zval_get_long(zvalue); |
|
|
|
#if LIBCURL_VERSION_NUM >= 0x071304 |
|
|
|
if ((option == CURLOPT_PROTOCOLS || option == CURLOPT_REDIR_PROTOCOLS) && |
|
|
|
@ -2277,6 +2358,25 @@ static int _php_curl_setopt(php_curl *ch, zend_long option, zval *zvalue) /* {{{ |
|
|
|
#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: |
|
|
|
case CURLOPT_PROXY_CRLFILE: |
|
|
|
case CURLOPT_PROXY_KEYPASSWD: |
|
|
|
case CURLOPT_PROXY_PINNEDPUBLICKEY: |
|
|
|
case CURLOPT_PROXY_SSL_CIPHER_LIST: |
|
|
|
case CURLOPT_PROXY_SSLCERT: |
|
|
|
case CURLOPT_PROXY_SSLCERTTYPE: |
|
|
|
case CURLOPT_PROXY_SSLKEY: |
|
|
|
case CURLOPT_PROXY_SSLKEYTYPE: |
|
|
|
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 |
|
|
|
@ -2976,10 +3076,13 @@ PHP_FUNCTION(curl_getinfo) |
|
|
|
long as there's no 32-bit int overflow. */ |
|
|
|
long l_code; |
|
|
|
double d_code; |
|
|
|
#if LIBCURL_VERSION_NUM > 0x071301 |
|
|
|
#if LIBCURL_VERSION_NUM > 0x071301 /* 7.19.1 */ |
|
|
|
struct curl_certinfo *ci = NULL; |
|
|
|
zval listcode; |
|
|
|
#endif |
|
|
|
#if LIBCURL_VERSION_NUM >= 0x073700 /* 7.55.0 */ |
|
|
|
curl_off_t co; |
|
|
|
#endif |
|
|
|
|
|
|
|
array_init(return_value); |
|
|
|
|
|
|
|
@ -3076,6 +3179,42 @@ PHP_FUNCTION(curl_getinfo) |
|
|
|
if (curl_easy_getinfo(ch->cp, CURLINFO_LOCAL_PORT, &l_code) == CURLE_OK) { |
|
|
|
CAAL("local_port", l_code); |
|
|
|
} |
|
|
|
#endif |
|
|
|
#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); |
|
|
|
} |
|
|
|
if (curl_easy_getinfo(ch->cp, CURLINFO_PROXY_SSL_VERIFYRESULT, &l_code) == CURLE_OK) { |
|
|
|
CAAL("ssl_verifyresult", l_code); |
|
|
|
} |
|
|
|
if (curl_easy_getinfo(ch->cp, CURLINFO_SCHEME, &s_code) == CURLE_OK) { |
|
|
|
CAAS("scheme", s_code); |
|
|
|
} |
|
|
|
#endif |
|
|
|
#if LIBCURL_VERSION_NUM >= 0x073700 /* Available since 7.55.0 */ |
|
|
|
if (curl_easy_getinfo(ch->cp, CURLINFO_CONTENT_LENGTH_DOWNLOAD_T, &co) == CURLE_OK) { |
|
|
|
CAAL("content_length_download", co); |
|
|
|
} |
|
|
|
if (curl_easy_getinfo(ch->cp, CURLINFO_CONTENT_LENGTH_UPLOAD_T, &co) == CURLE_OK) { |
|
|
|
CAAL("content_length_upload", co); |
|
|
|
} |
|
|
|
if (curl_easy_getinfo(ch->cp, CURLINFO_SIZE_DOWNLOAD_T, &co) == CURLE_OK) { |
|
|
|
CAAL("size_download", co); |
|
|
|
} |
|
|
|
if (curl_easy_getinfo(ch->cp, CURLINFO_SIZE_UPLOAD_T, &co) == CURLE_OK) { |
|
|
|
CAAL("size_upload", co); |
|
|
|
} |
|
|
|
if (curl_easy_getinfo(ch->cp, CURLINFO_SPEED_DOWNLOAD_T, &co) == CURLE_OK) { |
|
|
|
CAAL("speed_download", co); |
|
|
|
} |
|
|
|
if (curl_easy_getinfo(ch->cp, CURLINFO_SPEED_UPLOAD_T, &co) == CURLE_OK) { |
|
|
|
CAAL("speed_upload", co); |
|
|
|
} |
|
|
|
#endif |
|
|
|
if (ch->header.str) { |
|
|
|
CAASTR("request_header", ch->header.str); |
|
|
|
@ -3153,6 +3292,18 @@ PHP_FUNCTION(curl_getinfo) |
|
|
|
} |
|
|
|
break; |
|
|
|
} |
|
|
|
#if LIBCURL_VERSION_NUM >= 0x073700 /* Available since 7.55.0 */ |
|
|
|
case CURLINFO_OFF_T: |
|
|
|
{ |
|
|
|
curl_off_t c_off; |
|
|
|
if (curl_easy_getinfo(ch->cp, option, &c_off) == CURLE_OK) { |
|
|
|
RETURN_LONG((long) c_off); |
|
|
|
} else { |
|
|
|
RETURN_FALSE; |
|
|
|
} |
|
|
|
break; |
|
|
|
} |
|
|
|
#endif |
|
|
|
default: |
|
|
|
RETURN_FALSE; |
|
|
|
} |
|
|
|
|