diff --git a/NEWS b/NEWS index d9760d08f6403..dfea4ff1a3c8b 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 c6dd6f0b10380..6a56342a85e98 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 0adfb17c4d3f3..473e8b6297e98 100644 --- a/ext/curl/curl.stub.php +++ b/ext/curl/curl.stub.php @@ -407,6 +407,13 @@ * @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 044763d57df0f..3bb825af8d146 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 994bac82f3809..8ec2ec33520ec 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) &&