]> git.mxchange.org Git - friendica.git/blobdiff - src/Util/Network.php
Merge pull request #4858 from annando/issue-4655
[friendica.git] / src / Util / Network.php
index d25b799242e052bc4b3406c2b873bca97a166ee8..4a11f9259579e31272b57fdfbe9a1c6d363a8212 100644 (file)
@@ -79,6 +79,18 @@ class Network
 
                $a = get_app();
 
+               $parts = parse_url($url);
+               $path_parts = explode('/', $parts['path']);
+               foreach ($path_parts as $part) {
+                       if (strlen($part) <> mb_strlen($part)) {
+                               $parts2[] = rawurlencode($part);
+                       } else {
+                               $parts2[] = $part;
+                       }
+               }
+               $parts['path'] =  implode('/', $parts2);
+               $url = self::unparseURL($parts);
+
                if (self::isUrlBlocked($url)) {
                        logger('domain of ' . $url . ' is blocked', LOGGER_DATA);
                        return $ret;
@@ -434,7 +446,7 @@ class Network
                /// @TODO Really suppress function outcomes? Why not find them + debug them?
                $h = @parse_url($url);
 
-               if ((is_array($h)) && (@dns_get_record($h['host'], DNS_A + DNS_CNAME + DNS_PTR) || filter_var($h['host'], FILTER_VALIDATE_IP) )) {
+               if ((is_array($h)) && (@dns_get_record($h['host'], DNS_A + DNS_CNAME) || filter_var($h['host'], FILTER_VALIDATE_IP) )) {
                        return $url;
                }
 
@@ -459,7 +471,7 @@ class Network
 
                $h = substr($addr, strpos($addr, '@') + 1);
 
-               if (($h) && (dns_get_record($h, DNS_A + DNS_CNAME + DNS_PTR + DNS_MX) || filter_var($h, FILTER_VALIDATE_IP) )) {
+               if (($h) && (dns_get_record($h, DNS_A + DNS_CNAME + DNS_MX) || filter_var($h, FILTER_VALIDATE_IP) )) {
                        return true;
                }
                return false;