X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=src%2FNetwork%2FProbe.php;h=fac76e0dacc7df60ab075e59066cf28915288ea3;hb=60df79ad2a89afa33b383188e9c0b3f813027edc;hp=042e761e92b65bf510baee6ebb362f52dd91f660;hpb=b442f41159c6bfa4f527b3f540d8d083c367023c;p=friendica.git diff --git a/src/Network/Probe.php b/src/Network/Probe.php index 042e761e92..fac76e0dac 100644 --- a/src/Network/Probe.php +++ b/src/Network/Probe.php @@ -115,19 +115,29 @@ class Probe $xrd = null; $curlResult = Network::curl($ssl_url, false, ['timeout' => $xrd_timeout, 'accept_content' => 'application/xrd+xml']); + $ssl_connection_error = ($curlResult->getErrorNumber() == CURLE_COULDNT_CONNECT) || ($curlResult->getReturnCode() == 0); if ($curlResult->isSuccess()) { $xml = $curlResult->getBody(); $xrd = XML::parseString($xml, false); $host_url = 'https://'.$host; + } elseif ($curlResult->isTimeout()) { + Logger::info('Probing timeout', ['url' => $ssl_url], Logger::DEBUG); + self::$istimeout = true; + return false; } if (!is_object($xrd)) { $curlResult = Network::curl($url, false, ['timeout' => $xrd_timeout, 'accept_content' => 'application/xrd+xml']); + $connection_error = ($curlResult->getErrorNumber() == CURLE_COULDNT_CONNECT) || ($curlResult->getReturnCode() == 0); if ($curlResult->isTimeout()) { - Logger::log("Probing timeout for " . $url, Logger::DEBUG); + Logger::info('Probing timeout', ['url' => $url], Logger::DEBUG); + self::$istimeout = true; + return false; + } elseif ($connection_error && $ssl_connection_error) { self::$istimeout = true; return false; } + $xml = $curlResult->getBody(); $xrd = XML::parseString($xml, false); $host_url = 'http://'.$host; @@ -724,8 +734,18 @@ class Probe $zot_url = self::$baseurl . '/.well-known/zot-info?address=' . $data['addr']; } - if (!empty($zot_url)) { - $data = self::pollZot($zot_url, $data); + if (empty($zot_url)) { + return $data; + } + + $data = self::pollZot($zot_url, $data); + + if (!empty($data['url']) && !empty($webfinger['aliases']) && is_array($webfinger['aliases'])) { + foreach ($webfinger['aliases'] as $alias) { + if (!strstr($alias, '@') && Strings::normaliseLink($alias) != Strings::normaliseLink($data['url'])) { + $data['alias'] = $alias; + } + } } return $data; @@ -1510,8 +1530,13 @@ class Probe */ private static function pumpioProfileData($profile_link) { + $curlResult = Network::curl($profile_link); + if (!$curlResult->isSuccess()) { + return false; + } + $doc = new DOMDocument(); - if (!@$doc->loadHTMLFile($profile_link)) { + if (!@$doc->loadHTML($curlResult->getBody())) { return false; } @@ -1683,9 +1708,13 @@ class Probe */ private static function getFeedLink($url) { - $doc = new DOMDocument(); + $curlResult = Network::curl($url); + if (!$curlResult->isSuccess()) { + return false; + } - if (!@$doc->loadHTMLFile($url)) { + $doc = new DOMDocument(); + if (!@$doc->loadHTML($curlResult->getBody())) { return false; }