diff --git a/UPGRADING b/UPGRADING index 1d878a44e2a10..31988344edac4 100644 --- a/UPGRADING +++ b/UPGRADING @@ -193,6 +193,11 @@ PHP 8.5 UPGRADE NOTES used by a cURL transfer. It is primarily useful when connection reuse or connection pooling logic is needed in PHP-level applications. When curl_getinfo() returns an array, this value is available as the "conn_id" key. + . Added support for CURLINFO_QUEUE_TIME_T (libcurl >= 8.6.0) to the curl_getinfo() + function. This constant allows retrieving the time (in microseconds) that the + request spent in libcurl’s connection queue before it was sent. + This value can also be retrieved by passing CURLINFO_QUEUE_TIME_T to the + curl_getinfo() $option parameter. - DOM: . Added Dom\Element::$outerHTML. @@ -523,6 +528,7 @@ PHP 8.5 UPGRADE NOTES . CURLINFO_HTTPAUTH_USED. . CURLINFO_PROXYAUTH_USED. . CURLINFO_CONN_ID. + . CURLINFO_QUEUE_TIME_T. . CURLOPT_INFILESIZE_LARGE. . CURLFOLLOW_ALL. . CURLFOLLOW_OBEYCODE. diff --git a/ext/curl/curl.stub.php b/ext/curl/curl.stub.php index 5dac22ae7952c..7199583b90396 100644 --- a/ext/curl/curl.stub.php +++ b/ext/curl/curl.stub.php @@ -3054,6 +3054,13 @@ * @cvalue CURLAUTH_BEARER */ const CURLAUTH_BEARER = UNKNOWN; +#if LIBCURL_VERSION_NUM >= 0x080600 /* Available since 8.6.0 */ +/** + * @var int + * @cvalue CURLINFO_QUEUE_TIME_T + */ +const CURLINFO_QUEUE_TIME_T = UNKNOWN; +#endif /** * @var int * @cvalue CURLINFO_APPCONNECT_TIME_T diff --git a/ext/curl/curl_arginfo.h b/ext/curl/curl_arginfo.h index 75be3b75c4983..640eaa62f2f97 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: 533884c442ca1146a61c0824a4f8c9628c31aae3 */ + * Stub hash: c2245ec496551980ca17ff4472cc1790653e41bd */ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_curl_close, 0, 1, IS_VOID, 0) ZEND_ARG_OBJ_INFO(0, handle, CurlHandle, 0) @@ -812,6 +812,9 @@ static void register_curl_symbols(int module_number) REGISTER_LONG_CONSTANT("CURLOPT_HAPROXYPROTOCOL", CURLOPT_HAPROXYPROTOCOL, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("CURL_LOCK_DATA_PSL", CURL_LOCK_DATA_PSL, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("CURLAUTH_BEARER", CURLAUTH_BEARER, CONST_PERSISTENT); +#if LIBCURL_VERSION_NUM >= 0x080600 /* Available since 8.6.0 */ + REGISTER_LONG_CONSTANT("CURLINFO_QUEUE_TIME_T", CURLINFO_QUEUE_TIME_T, CONST_PERSISTENT); +#endif REGISTER_LONG_CONSTANT("CURLINFO_APPCONNECT_TIME_T", CURLINFO_APPCONNECT_TIME_T, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("CURLINFO_CONNECT_TIME_T", CURLINFO_CONNECT_TIME_T, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("CURLINFO_NAMELOOKUP_TIME_T", CURLINFO_NAMELOOKUP_TIME_T, CONST_PERSISTENT); diff --git a/ext/curl/interface.c b/ext/curl/interface.c index ffb7889c748b2..56286fc222e56 100644 --- a/ext/curl/interface.c +++ b/ext/curl/interface.c @@ -2571,6 +2571,11 @@ PHP_FUNCTION(curl_getinfo) if (curl_easy_getinfo(ch->cp, CURLINFO_APPCONNECT_TIME_T, &co) == CURLE_OK) { CAAL("appconnect_time_us", co); } +#if LIBCURL_VERSION_NUM >= 0x080600 /* Available since 8.6.0 */ + if (curl_easy_getinfo(ch->cp, CURLINFO_QUEUE_TIME_T , &co) == CURLE_OK) { + CAAL("queue_time_us", co); + } +#endif if (curl_easy_getinfo(ch->cp, CURLINFO_CONNECT_TIME_T, &co) == CURLE_OK) { CAAL("connect_time_us", co); } diff --git a/ext/curl/tests/curl_getinfo_CURLINFO_QUEUE_TIME_T.phpt b/ext/curl/tests/curl_getinfo_CURLINFO_QUEUE_TIME_T.phpt new file mode 100644 index 0000000000000..82064b93af182 --- /dev/null +++ b/ext/curl/tests/curl_getinfo_CURLINFO_QUEUE_TIME_T.phpt @@ -0,0 +1,41 @@ +--TEST-- +Curlinfo CURLINFO_QUEUE_TIME_T +--EXTENSIONS-- +curl +--SKIPIF-- += 8.6.0"); +?> +--FILE-- + 0); + +?> +--EXPECT-- +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) +