]> git.mxchange.org Git - friendica.git/blobdiff - src/Util/Network.php
Merge pull request #5833 from MrPetovan/develop
[friendica.git] / src / Util / Network.php
index 0e65145b78340caca37bc49f583a9d62c441df0e..0de96618597cae89b0408677329d18c8720729b1 100644 (file)
@@ -220,7 +220,7 @@ class Network
                }
 
                if (curl_errno($ch) !== CURLE_OK) {
-                       logger('error fetching ' . $url . ': ' . curl_error($ch), LOGGER_NORMAL);
+                       logger('error fetching ' . $url . ': ' . curl_error($ch), LOGGER_INFO);
                }
 
                $ret['errno'] = curl_errno($ch);
@@ -494,10 +494,11 @@ class Network
 
                $h = substr($addr, strpos($addr, '@') + 1);
 
-               if (($h) && (dns_get_record($h, DNS_A + DNS_MX) || filter_var($h, FILTER_VALIDATE_IP) )) {
+               // Concerning the @ see here: https://stackoverflow.com/questions/36280957/dns-get-record-a-temporary-server-error-occurred
+               if ($h && (@dns_get_record($h, DNS_A + DNS_MX) || filter_var($h, FILTER_VALIDATE_IP) )) {
                        return true;
                }
-               if (($h) && dns_get_record($h, DNS_CNAME + DNS_MX)) {
+               if ($h && @dns_get_record($h, DNS_CNAME + DNS_MX)) {
                        return true;
                }
                return false;
@@ -559,21 +560,18 @@ class Network
         */
        public static function isUrlBlocked($url)
        {
-               $h = @parse_url($url);
-
-               if (! $h) {
-                       return true;
+               $host = @parse_url($url, PHP_URL_HOST);
+               if (!$host) {
+                       return false;
                }
 
                $domain_blocklist = Config::get('system', 'blocklist', []);
-               if (! $domain_blocklist) {
+               if (!$domain_blocklist) {
                        return false;
                }
 
-               $host = strtolower($h['host']);
-
                foreach ($domain_blocklist as $domain_block) {
-                       if (strtolower($domain_block['domain']) == $host) {
+                       if (strcasecmp($domain_block['domain'], $host) === 0) {
                                return true;
                        }
                }
@@ -718,7 +716,7 @@ class Network
                $url = self::stripTrackingQueryParams($url);
 
                if ($depth > 10) {
-                       return($url);
+                       return $url;
                }
 
                $url = trim($url, "'");
@@ -741,16 +739,14 @@ class Network
                $a->save_timestamp($stamp1, "network");
 
                if ($http_code == 0) {
-                       return($url);
+                       return $url;
                }
 
-               if ((($curl_info['http_code'] == "301") || ($curl_info['http_code'] == "302"))
-                       && (($curl_info['redirect_url'] != "") || ($curl_info['location'] != ""))
-               ) {
-                       if ($curl_info['redirect_url'] != "") {
-                               return(self::finalUrl($curl_info['redirect_url'], ++$depth, $fetchbody));
-                       } else {
-                               return(self::finalUrl($curl_info['location'], ++$depth, $fetchbody));
+               if (in_array($http_code, ['301', '302'])) {
+                       if (!empty($curl_info['redirect_url'])) {
+                               return self::finalUrl($curl_info['redirect_url'], ++$depth, $fetchbody);
+                       } elseif (!empty($curl_info['location'])) {
+                               return self::finalUrl($curl_info['location'], ++$depth, $fetchbody);
                        }
                }
 
@@ -761,12 +757,12 @@ class Network
 
                // if the file is too large then exit
                if ($curl_info["download_content_length"] > 1000000) {
-                       return($url);
+                       return $url;
                }
 
                // if it isn't a HTML file then exit
-               if (($curl_info["content_type"] != "") && !strstr(strtolower($curl_info["content_type"]), "html")) {
-                       return($url);
+               if (!empty($curl_info["content_type"]) && !strstr(strtolower($curl_info["content_type"]), "html")) {
+                       return $url;
                }
 
                $stamp1 = microtime(true);
@@ -785,7 +781,7 @@ class Network
                $a->save_timestamp($stamp1, "network");
 
                if (trim($body) == "") {
-                       return($url);
+                       return $url;
                }
 
                // Check for redirect in meta elements
@@ -808,7 +804,7 @@ class Network
                                $pathinfo = explode(";", $path);
                                foreach ($pathinfo as $value) {
                                        if (substr(strtolower($value), 0, 4) == "url=") {
-                                               return(self::finalUrl(substr($value, 4), ++$depth));
+                                               return self::finalUrl(substr($value, 4), ++$depth);
                                        }
                                }
                        }