X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FUtil%2FNetwork.php;h=0f6389ce870363d5438ad857a366e41215d63f38;hb=4b44aca50735dc047e495825bff7dfa717acb615;hp=7e1012827e4dac297bd7af46f3710c5bc13f6bd7;hpb=1de3960e267a8d298348fbca18cf1be1f6a20f7a;p=friendica.git diff --git a/src/Util/Network.php b/src/Util/Network.php index 7e1012827e..0f6389ce87 100644 --- a/src/Util/Network.php +++ b/src/Util/Network.php @@ -10,6 +10,7 @@ use Friendica\Core\Config; use Friendica\Core\Hook; use Friendica\Core\Logger; use Friendica\Core\System; +use Friendica\DI; use Friendica\Network\CurlResult; class Network @@ -95,7 +96,7 @@ class Network { $stamp1 = microtime(true); - $a = \get_app(); + $a = DI::app(); if (strlen($url) > 1000) { Logger::log('URL is longer than 1000 characters. Callstack: ' . System::callstack(20), Logger::DEBUG); @@ -233,7 +234,7 @@ class Network @curl_close($ch); - $a->getProfiler()->saveTimestamp($stamp1, 'network', System::callstack()); + DI::profiler()->saveTimestamp($stamp1, 'network', System::callstack()); return $curlResponse; } @@ -259,7 +260,7 @@ class Network return CurlResult::createErrorCurl($url); } - $a = \get_app(); + $a = DI::app(); $ch = curl_init($url); if (($redirects > 8) || (!$ch)) { @@ -285,16 +286,6 @@ class Network 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)) { curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); } @@ -335,7 +326,22 @@ class Network curl_close($ch); - $a->getProfiler()->saveTimestamp($stamp1, 'network', System::callstack()); + DI::profiler()->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); @@ -550,7 +556,7 @@ class Network Hook::callAll('avatar_lookup', $avatar); if (! $avatar['success']) { - $avatar['url'] = System::baseUrl() . '/images/person-300.jpg'; + $avatar['url'] = DI::baseUrl() . '/images/person-300.jpg'; } Logger::log('Avatar: ' . $avatar['email'] . ' ' . $avatar['url'], Logger::DEBUG); @@ -624,7 +630,7 @@ class Network */ public static function finalUrl(string $url, int $depth = 1, bool $fetchbody = false) { - $a = \get_app(); + $a = DI::app(); $url = self::stripTrackingQueryParams($url); @@ -649,7 +655,7 @@ class Network $http_code = $curl_info['http_code']; curl_close($ch); - $a->getProfiler()->saveTimestamp($stamp1, "network", System::callstack()); + DI::profiler()->saveTimestamp($stamp1, "network", System::callstack()); if ($http_code == 0) { return $url; @@ -691,7 +697,7 @@ class Network $body = curl_exec($ch); curl_close($ch); - $a->getProfiler()->saveTimestamp($stamp1, "network", System::callstack()); + DI::profiler()->saveTimestamp($stamp1, "network", System::callstack()); if (trim($body) == "") { return $url;