From fd8fadfe55201c9611f2a1d11db026ca8005ec40 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Fri, 16 Aug 2024 18:36:23 +0100 Subject: [PATCH] GH-15440: adding CURLOPT_TCP_KEEPCNT constant (8.9.0) close GH-15446 --- NEWS | 4 ++++ UPGRADING | 1 + ext/curl/curl.stub.php | 7 +++++++ ext/curl/curl_arginfo.h | 5 ++++- ext/curl/interface.c | 3 +++ 5 files changed, 19 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index d9760d08f640..dfea4ff1a3c8 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 c6dd6f0b1038..6a56342a85e9 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 0adfb17c4d3f..473e8b6297e9 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 044763d57df0..3bb825af8d14 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 994bac82f380..8ec2ec33520e 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) &&