]> git.mxchange.org Git - friendica.git/blobdiff - src/Network/Probe.php
Merge pull request #8036 from nupplaphil/task/redundant_system_call
[friendica.git] / src / Network / Probe.php
index aa0b2e04410387deb52940a65fcd7906193f7e1d..dac0822a94af7c1dfafec75350fe6b46b9551e14 100644 (file)
@@ -15,7 +15,6 @@ use Friendica\Core\Cache;
 use Friendica\Core\Config;
 use Friendica\Core\Logger;
 use Friendica\Core\Protocol;
-use Friendica\Core\System;
 use Friendica\Database\DBA;
 use Friendica\DI;
 use Friendica\Model\Contact;
@@ -116,6 +115,7 @@ 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);
@@ -128,11 +128,16 @@ class Probe
 
                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::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;
@@ -367,7 +372,7 @@ class Probe
                if (!empty($data['photo']) && !empty($data['baseurl'])) {
                        $data['baseurl'] = Network::getUrlMatch(Strings::normaliseLink($data['baseurl']), Strings::normaliseLink($data['photo']));
                } elseif (empty($data['photo'])) {
-                       $data['photo'] = System::baseUrl() . '/images/person-300.jpg';
+                       $data['photo'] = DI::baseUrl() . '/images/person-300.jpg';
                }
 
                if (empty($data['name'])) {