diff --git a/NEWS b/NEWS index d9760d08f64..dfea4ff1a3c 100644 --- a/NEWS +++ b/NEWS @@ -17,6 +17,10 @@ PHP NEWS As such, passing invalid types to exit/die may now result in a TypeError being thrown. (Girgias) +- CURL: + . Added CURLOPT_TCP_KEEPCNT to set the number of probes to send before + dropping the connection. (David Carlier) + - Hash: . Fix GH-15384 (Build fails on Alpine / Musl for amd64). (timwolla) diff --git a/UPGRADING b/UPGRADING index c6dd6f0b103..6a56342a85e 100644 --- a/UPGRADING +++ b/UPGRADING @@ -917,6 +917,7 @@ PHP 8.4 UPGRADE NOTES - Curl: . CURL_HTTP_VERSION_3. . CURL_HTTP_VERSION_3ONLY. + . CURL_TCP_KEEPCNT - Intl: . The IntlDateFormatter class exposes now the new PATTERN constant diff --git a/ext/curl/curl.stub.php b/ext/curl/curl.stub.php index 0adfb17c4d3..473e8b6297e 100644 --- a/ext/curl/curl.stub.php +++ b/ext/curl/curl.stub.php @@ -407,6 +407,13 @@ const CURLOPT_SSL_VERIFYPEER = UNKNOWN; * @cvalue CURLOPT_STDERR */ const CURLOPT_STDERR = UNKNOWN; +#if LIBCURL_VERSION_NUM >= 0x080900 /* Available since 8.9.0 */ +/** + * @var int + * @cvalue CURLOPT_TCP_KEEPCNT + */ +const CURLOPT_TCP_KEEPCNT = UNKNOWN; +#endif /** * @var int * @cvalue CURLOPT_TELNETOPTIONS diff --git a/ext/curl/curl_arginfo.h b/ext/curl/curl_arginfo.h index 044763d57df..3bb825af8d1 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: b5a3bd62bcb62b2e7e4aacfcd4621cc632be1564 */ + * Stub hash: ddfcdd8a0bf0ee6c338ec1689c6de5d7fd87303d */ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_curl_close, 0, 1, IS_VOID, 0) ZEND_ARG_OBJ_INFO(0, handle, CurlHandle, 0) @@ -307,6 +307,9 @@ static void register_curl_symbols(int module_number) REGISTER_LONG_CONSTANT("CURLOPT_SSL_VERIFYHOST", CURLOPT_SSL_VERIFYHOST, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("CURLOPT_SSL_VERIFYPEER", CURLOPT_SSL_VERIFYPEER, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("CURLOPT_STDERR", CURLOPT_STDERR, CONST_PERSISTENT); +#if LIBCURL_VERSION_NUM >= 0x080900 /* Available since 8.9.0 */ + REGISTER_LONG_CONSTANT("CURLOPT_TCP_KEEPCNT", CURLOPT_TCP_KEEPCNT, CONST_PERSISTENT); +#endif REGISTER_LONG_CONSTANT("CURLOPT_TELNETOPTIONS", CURLOPT_TELNETOPTIONS, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("CURLOPT_TIMECONDITION", CURLOPT_TIMECONDITION, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("CURLOPT_TIMEOUT", CURLOPT_TIMEOUT, CONST_PERSISTENT); diff --git a/ext/curl/interface.c b/ext/curl/interface.c index 994bac82f38..8ec2ec33520 100644 --- a/ext/curl/interface.c +++ b/ext/curl/interface.c @@ -1728,6 +1728,9 @@ static zend_result _php_curl_setopt(php_curl *ch, zend_long option, zval *zvalue #if LIBCURL_VERSION_NUM >= 0x075700 /* Available since 7.87.0 */ case CURLOPT_CA_CACHE_TIMEOUT: case CURLOPT_QUICK_EXIT: +#endif +#if LIBCURL_VERSION_NUM >= 0x080900 /* Available since 8.9.0 */ + case CURLOPT_TCP_KEEPCNT: #endif lval = zval_get_long(zvalue); if ((option == CURLOPT_PROTOCOLS || option == CURLOPT_REDIR_PROTOCOLS) &&