Merge pull request #7753 from annando/http-417

Handling for HTTP Error code 417
This commit is contained in:
Hypolite Petovan 2019-10-18 12:53:33 -04:00 committed by GitHub
commit 1a8bc6e73f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -285,16 +285,6 @@ class Network
curl_setopt($ch, CURLOPT_TIMEOUT, intval($curl_time)); curl_setopt($ch, CURLOPT_TIMEOUT, intval($curl_time));
} }
if (defined('LIGHTTPD')) {
if (empty($headers)) {
$headers = ['Expect:'];
} else {
if (!in_array('Expect:', $headers)) {
array_push($headers, 'Expect:');
}
}
}
if (!empty($headers)) { if (!empty($headers)) {
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
} }
@ -337,6 +327,21 @@ class Network
$a->getProfiler()->saveTimestamp($stamp1, 'network', System::callstack()); $a->getProfiler()->saveTimestamp($stamp1, 'network', System::callstack());
// Very old versions of Lighttpd don't like the "Expect" header, so we remove it when needed
if ($curlResponse->getReturnCode() == 417) {
$redirects++;
if (empty($headers)) {
$headers = ['Expect:'];
} else {
if (!in_array('Expect:', $headers)) {
array_push($headers, 'Expect:');
}
}
Logger::info('Server responds with 417, applying workaround', ['url' => $url]);
return self::post($url, $params, $headers, $redirects, $timeout);
}
Logger::log('post_url: end ' . $url, Logger::DATA); Logger::log('post_url: end ' . $url, Logger::DATA);
return $curlResponse; return $curlResponse;