Let curl select the default HTTP version (#3249)
This essentially reverts b042412416cc4ecc71c3f9c13239661a0dd588a6, as YouTube seems to have fixed their servers. At least I was able to query the YouTube endpoint around 150 times with CURL_HTTP_VERSION_2TLS recently. They even advertise HTTP/3 support with an `alt-svc` HTTP header now. This unsets CURLOPT_HTTP_VERSION to let curl decide on the version. This would support all curl versions and opens the possibility for HTTP/3, but leads to inconsistent behavior depending on the underlying curl version. We don't set CURL_HTTP_VERSION_NONE explicitly, as it is always the curl default and opens the path to let individual bridges override the HTTP version where necessary. Alternatively, setting CURL_HTTP_VERSION_2TLS explicitly would lead to consistent behavior regardless of the curl version, but might uncover old curl bugs before the developers enabled HTTP/2 by default. Additionally, that requires at least PHP 7.0.7 (we require PHP 7.4 already) and curl 7.47.0 [1], released on Jan 27 2016 [2]. See also the discussion on https://github.com/RSS-Bridge/rss-bridge/pull/3249 [1] https://www.php.net/manual/curl.constants.php [2] https://curl.se/docs/releases.html
This commit is contained in:
parent
7783e4133d
commit
4450e9b973
@ -244,8 +244,6 @@ function _http_request(string $url, array $config = []): array
|
||||
curl_setopt($ch, CURLOPT_TIMEOUT, $config['timeout']);
|
||||
curl_setopt($ch, CURLOPT_ENCODING, '');
|
||||
curl_setopt($ch, CURLOPT_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_HTTPS);
|
||||
// Force HTTP 1.1 because newer versions of libcurl defaults to HTTP/2
|
||||
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
|
||||
|
||||
if ($config['max_filesize']) {
|
||||
// This option inspects the Content-Length header
|
||||
|
Loading…
x
Reference in New Issue
Block a user