]> git.mxchange.org Git - friendica.git/commitdiff
Probe: Additional checks for connection problems
authorMichael <heluecht@pirati.ca>
Sun, 29 Dec 2019 03:27:54 +0000 (03:27 +0000)
committerMichael <heluecht@pirati.ca>
Sun, 29 Dec 2019 03:27:54 +0000 (03:27 +0000)
src/Network/Probe.php

index 878198504d46d0921c1ec3fef96016d171fd0f02..fac76e0dacc7df60ab075e59066cf28915288ea3 100644 (file)
@@ -115,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);
@@ -127,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;