refactor(http-client): use direct HTTP/2 cURL hint and align tests

Signed-off-by: ernolf <raphael.gradenwitz@googlemail.com>
This commit is contained in:
ernolf 2025-10-22 12:17:17 +02:00
parent 65aa731ef3
commit b6ea2bc0f5
No known key found for this signature in database
GPG key ID: 0B145139A170715C
2 changed files with 5 additions and 29 deletions

View file

@ -57,11 +57,7 @@ class Client implements IClient {
// Prefer HTTP/2 globally (PSR-7 request version)
RequestOptions::VERSION => '2.0',
];
// cURL hint: Prefer HTTP/2 (with ALPN); automatically falls back to 1.1.
$defaults['curl'][\CURLOPT_HTTP_VERSION]
= \defined('CURL_HTTP_VERSION_2TLS') ? \CURL_HTTP_VERSION_2TLS
: (\defined('CURL_HTTP_VERSION_2_0') ? \CURL_HTTP_VERSION_2_0
: \CURL_HTTP_VERSION_NONE);
$defaults['curl'][\CURLOPT_HTTP_VERSION] = \CURL_HTTP_VERSION_2TLS;
$options['nextcloud']['allow_local_address'] = $this->isLocalAddressAllowed($options);
if ($options['nextcloud']['allow_local_address'] === false) {

View file

@ -278,11 +278,6 @@ class ClientTest extends \Test\TestCase {
$acceptEnc = function_exists('brotli_uncompress') ? 'br, gzip' : 'gzip';
// compute curl http version hint like in production code
$curlVersion = \defined('CURL_HTTP_VERSION_2TLS')
? \CURL_HTTP_VERSION_2TLS
: (\defined('CURL_HTTP_VERSION_2_0') ? \CURL_HTTP_VERSION_2_0 : \CURL_HTTP_VERSION_NONE);
$this->defaultRequestOptions = [
'verify' => '/my/path.crt',
'proxy' => [
@ -299,7 +294,7 @@ class ClientTest extends \Test\TestCase {
],
'version' => '2.0',
'curl' => [
\CURLOPT_HTTP_VERSION => $curlVersion,
\CURLOPT_HTTP_VERSION => \CURL_HTTP_VERSION_2TLS,
],
];
}
@ -479,11 +474,6 @@ class ClientTest extends \Test\TestCase {
$acceptEnc = function_exists('brotli_uncompress') ? 'br, gzip' : 'gzip';
// compute curl http version hint like in production code
$curlVersion = \defined('CURL_HTTP_VERSION_2TLS')
? \CURL_HTTP_VERSION_2TLS
: (\defined('CURL_HTTP_VERSION_2_0') ? \CURL_HTTP_VERSION_2_0 : \CURL_HTTP_VERSION_NONE);
$this->assertEquals([
'verify' => \OC::$SERVERROOT . '/resources/config/ca-bundle.crt',
'headers' => [
@ -504,7 +494,7 @@ class ClientTest extends \Test\TestCase {
],
'version' => '2.0',
'curl' => [
\CURLOPT_HTTP_VERSION => $curlVersion,
\CURLOPT_HTTP_VERSION => \CURL_HTTP_VERSION_2TLS,
],
], self::invokePrivate($this->client, 'buildRequestOptions', [[]]));
}
@ -537,11 +527,6 @@ class ClientTest extends \Test\TestCase {
$acceptEnc = function_exists('brotli_uncompress') ? 'br, gzip' : 'gzip';
// compute curl http version hint like in production code
$curlVersion = \defined('CURL_HTTP_VERSION_2TLS')
? \CURL_HTTP_VERSION_2TLS
: (\defined('CURL_HTTP_VERSION_2_0') ? \CURL_HTTP_VERSION_2_0 : \CURL_HTTP_VERSION_NONE);
$this->assertEquals([
'verify' => '/my/path.crt',
'proxy' => [
@ -566,7 +551,7 @@ class ClientTest extends \Test\TestCase {
],
'version' => '2.0',
'curl' => [
\CURLOPT_HTTP_VERSION => $curlVersion,
\CURLOPT_HTTP_VERSION => \CURL_HTTP_VERSION_2TLS,
],
], self::invokePrivate($this->client, 'buildRequestOptions', [[]]));
}
@ -599,11 +584,6 @@ class ClientTest extends \Test\TestCase {
$acceptEnc = function_exists('brotli_uncompress') ? 'br, gzip' : 'gzip';
// compute curl http version hint like in production code
$curlVersion = \defined('CURL_HTTP_VERSION_2TLS')
? \CURL_HTTP_VERSION_2TLS
: (\defined('CURL_HTTP_VERSION_2_0') ? \CURL_HTTP_VERSION_2_0 : \CURL_HTTP_VERSION_NONE);
$this->assertEquals([
'verify' => '/my/path.crt',
'proxy' => [
@ -629,7 +609,7 @@ class ClientTest extends \Test\TestCase {
],
'version' => '2.0',
'curl' => [
\CURLOPT_HTTP_VERSION => $curlVersion,
\CURLOPT_HTTP_VERSION => \CURL_HTTP_VERSION_2TLS,
],
], self::invokePrivate($this->client, 'buildRequestOptions', [[]]));
}