From a5b884cd94e792e7a57c99f3bebf69a4f1848697 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Sat, 11 Apr 2020 11:49:39 +0200 Subject: [PATCH] [HttpClient] fix HTTP/2 support on non-SSL connections - CurlHttpClient only --- src/Symfony/Component/HttpClient/CurlHttpClient.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Symfony/Component/HttpClient/CurlHttpClient.php b/src/Symfony/Component/HttpClient/CurlHttpClient.php index ddc7f9d9f351..2fcba7902ebe 100644 --- a/src/Symfony/Component/HttpClient/CurlHttpClient.php +++ b/src/Symfony/Component/HttpClient/CurlHttpClient.php @@ -141,12 +141,12 @@ public function request(string $method, string $url, array $options = []): Respo CURLOPT_CERTINFO => $options['capture_peer_cert_chain'], ]; - if (1.0 === (float) $options['http_version']) { + if (\defined('CURL_VERSION_HTTP2') && (CURL_VERSION_HTTP2 & self::$curlVersion['features']) && ('https:' === $scheme || 2.0 === (float) $options['http_version'])) { + $curlopts[CURLOPT_HTTP_VERSION] = CURL_HTTP_VERSION_2_0; + } elseif (1.0 === (float) $options['http_version']) { $curlopts[CURLOPT_HTTP_VERSION] = CURL_HTTP_VERSION_1_0; - } elseif (1.1 === (float) $options['http_version'] || 'https:' !== $scheme) { + } elseif (1.1 === (float) $options['http_version']) { $curlopts[CURLOPT_HTTP_VERSION] = CURL_HTTP_VERSION_1_1; - } elseif (\defined('CURL_VERSION_HTTP2') && CURL_VERSION_HTTP2 & self::$curlVersion['features']) { - $curlopts[CURLOPT_HTTP_VERSION] = CURL_HTTP_VERSION_2_0; } if (isset($options['auth_ntlm'])) {