From 052520f1dca1951f065ebebadab4a7497c6df1d0 Mon Sep 17 00:00:00 2001 From: Denny Septian Panggabean Date: Fri, 23 Aug 2024 15:37:46 +0700 Subject: [PATCH 1/2] feat: support CURL HTTP3 --- system/HTTP/CURLRequest.php | 6 ++++++ tests/system/HTTP/CURLRequestTest.php | 12 ++++++++++++ 2 files changed, 18 insertions(+) diff --git a/system/HTTP/CURLRequest.php b/system/HTTP/CURLRequest.php index dadc1eff34ea..92ab3946b90c 100644 --- a/system/HTTP/CURLRequest.php +++ b/system/HTTP/CURLRequest.php @@ -658,6 +658,12 @@ protected function setCURLOptions(array $curlOptions = [], array $config = []) $curlOptions[CURLOPT_HTTP_VERSION] = CURL_HTTP_VERSION_1_1; } elseif ($version === '2.0') { $curlOptions[CURLOPT_HTTP_VERSION] = CURL_HTTP_VERSION_2_0; + } elseif ($version === '3.0') { + if (! defined('CURL_HTTP_VERSION_3')) { + define('CURL_HTTP_VERSION_3', 30); + } + + $curlOptions[CURLOPT_HTTP_VERSION] = CURL_HTTP_VERSION_3; } } diff --git a/tests/system/HTTP/CURLRequestTest.php b/tests/system/HTTP/CURLRequestTest.php index f14198be2264..d824d82831ec 100644 --- a/tests/system/HTTP/CURLRequestTest.php +++ b/tests/system/HTTP/CURLRequestTest.php @@ -1156,6 +1156,18 @@ public function testHTTPv2(): void $this->assertSame(CURL_HTTP_VERSION_2_0, $options[CURLOPT_HTTP_VERSION]); } + public function testHTTPv3(): void + { + $this->request->request('POST', '/post', [ + 'version' => 3.0, + ]); + + $options = $this->request->curl_options; + + $this->assertArrayHasKey(CURLOPT_HTTP_VERSION, $options); + $this->assertSame(CURL_HTTP_VERSION_3, $options[CURLOPT_HTTP_VERSION]); + } + public function testCookieOption(): void { $holder = SUPPORTPATH . 'HTTP/Files/CookiesHolder.txt'; From 484c3115ecbf9d4d480487b930ad0f573a88fd29 Mon Sep 17 00:00:00 2001 From: Denny Septian Panggabean Date: Tue, 10 Sep 2024 11:34:29 +0700 Subject: [PATCH 2/2] test: dynamiclly constant --- tests/system/HTTP/CURLRequestTest.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/system/HTTP/CURLRequestTest.php b/tests/system/HTTP/CURLRequestTest.php index d824d82831ec..32415c86d3ee 100644 --- a/tests/system/HTTP/CURLRequestTest.php +++ b/tests/system/HTTP/CURLRequestTest.php @@ -1164,6 +1164,10 @@ public function testHTTPv3(): void $options = $this->request->curl_options; + if (! defined('CURL_HTTP_VERSION_3')) { + define('CURL_HTTP_VERSION_3', 30); + } + $this->assertArrayHasKey(CURLOPT_HTTP_VERSION, $options); $this->assertSame(CURL_HTTP_VERSION_3, $options[CURLOPT_HTTP_VERSION]); }