X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FUtil%2FNetwork.php;h=0de96618597cae89b0408677329d18c8720729b1;hb=dc49ad090eca1bf4e511091418166da6fe68009b;hp=0e65145b78340caca37bc49f583a9d62c441df0e;hpb=8ad6b65aebfc67c9552e8d361bc464207db2e23b;p=friendica.git diff --git a/src/Util/Network.php b/src/Util/Network.php index 0e65145b78..0de9661859 100644 --- a/src/Util/Network.php +++ b/src/Util/Network.php @@ -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); } } }