]> git.mxchange.org Git - friendica.git/commitdiff
Merge remote-tracking branch 'upstream/develop' into http-417
authorMichael <heluecht@pirati.ca>
Thu, 17 Oct 2019 21:37:24 +0000 (21:37 +0000)
committerMichael <heluecht@pirati.ca>
Thu, 17 Oct 2019 21:37:24 +0000 (21:37 +0000)
src/Util/Network.php

index 7e1012827e4dac297bd7af46f3710c5bc13f6bd7..fd1f2855d1f735d008bd631e0384383e5b2cb717 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);