From d8adf5101a294a8d86ccee0ca2f7aecf1f17a3e3 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Fri, 11 Jun 2021 13:26:34 +0200 Subject: [PATCH] [HttpClient] fix compat with cURL <= 7.37 --- src/Symfony/Component/HttpClient/CurlHttpClient.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/HttpClient/CurlHttpClient.php b/src/Symfony/Component/HttpClient/CurlHttpClient.php index 48ecf773d4cf..9025c27fb5fd 100644 --- a/src/Symfony/Component/HttpClient/CurlHttpClient.php +++ b/src/Symfony/Component/HttpClient/CurlHttpClient.php @@ -311,7 +311,7 @@ public function request(string $method, string $url, array $options = []): Respo } foreach ($curlopts as $opt => $value) { - if (null !== $value && !curl_setopt($ch, $opt, $value) && \CURLOPT_CERTINFO !== $opt) { + if (null !== $value && !curl_setopt($ch, $opt, $value) && \CURLOPT_CERTINFO !== $opt && (!\defined('CURLOPT_HEADEROPT') || \CURLOPT_HEADEROPT !== $opt)) { $constantName = $this->findConstantName($opt); throw new TransportException(sprintf('Curl option "%s" is not supported.', $constantName ?? $opt)); } @@ -574,7 +574,6 @@ private function validateExtraCurlOptions(array $options): void \CURLOPT_HEADER, \CURLOPT_CONNECTTIMEOUT, \CURLOPT_CONNECTTIMEOUT_MS, - \CURLOPT_HEADEROPT, \CURLOPT_HTTP_VERSION, \CURLOPT_PORT, \CURLOPT_DNS_USE_GLOBAL_CACHE, @@ -588,6 +587,10 @@ private function validateExtraCurlOptions(array $options): void $curloptsToCheck[] = \CURLOPT_HTTP09_ALLOWED; } + if (\defined('CURLOPT_HEADEROPT')) { + $curloptsToCheck[] = \CURLOPT_HEADEROPT; + } + $methodOpts = [ \CURLOPT_POST, \CURLOPT_PUT,