]> git.mxchange.org Git - friendica.git/commitdiff
Workaround for HTTP error 417
authorMichael <heluecht@pirati.ca>
Mon, 2 Sep 2019 20:39:51 +0000 (20:39 +0000)
committerMichael <heluecht@pirati.ca>
Mon, 2 Sep 2019 20:39:51 +0000 (20:39 +0000)
src/Util/Network.php

index cd66abe0b2864b019341bd15139fc3dd68f198d4..633f1cadbabfce7104f65d87d68bd0da7cb76334 100644 (file)
@@ -284,8 +284,8 @@ class Network
                        $curl_time = Config::get('system', 'curl_timeout', 60);
                        curl_setopt($ch, CURLOPT_TIMEOUT, intval($curl_time));
                }
-
-               if (defined('LIGHTTPD')) {
+/*
+//             if (defined('LIGHTTPD')) {
                        if (empty($headers)) {
                                $headers = ['Expect:'];
                        } else {
@@ -293,8 +293,8 @@ class Network
                                        array_push($headers, 'Expect:');
                                }
                        }
-               }
-
+//             }
+*/
                if (!empty($headers)) {
                        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
                }
@@ -336,6 +336,21 @@ class Network
                curl_close($ch);
 
                $a->getProfiler()->saveTimestamp($stamp1, 'network', System::callstack());
+Logger::info('Blubb', ['code' => $curlResponse->getReturnCode()]);
+               // Some servers 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);