X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FUtil%2FNetwork.php;h=af4d18b4ab037301ea3bc5692519cb8334977dae;hb=204e52ea307b182175ae0c64d6eb69c71a104658;hp=6694fd4f0c057f3fad686824233334457bf5957a;hpb=fc2340d4afe6466c58e35afd64fe9010bf185b04;p=friendica.git diff --git a/src/Util/Network.php b/src/Util/Network.php index 6694fd4f0c..af4d18b4ab 100644 --- a/src/Util/Network.php +++ b/src/Util/Network.php @@ -1,6 +1,6 @@ get('system', 'no_redirect_list', []); + if (!$no_redirect_list) { + return false; + } + + foreach ($no_redirect_list as $no_redirect) { + if (fnmatch(strtolower($no_redirect), strtolower($host))) { + return true; + } + } + + return false; + } + /** * Check if email address is allowed to register here. * @@ -239,7 +270,7 @@ class Network $avatar['url'] = DI::baseUrl() . Contact::DEFAULT_AVATAR_PHOTO; } - Logger::log('Avatar: ' . $avatar['email'] . ' ' . $avatar['url'], Logger::DEBUG); + Logger::info('Avatar: ' . $avatar['email'] . ' ' . $avatar['url']); return $avatar['url']; } @@ -405,7 +436,8 @@ class Network * * @param array $parsed URL parts * - * @return string The glued URL + * @return string The glued URL. + * @deprecated since version 2021.12, use GuzzleHttp\Psr7\Uri::fromParts($parts) instead */ public static function unparseURL(array $parsed) { @@ -431,6 +463,29 @@ class Network (strlen($fragment) ? "#".$fragment : ''); } + /** + * Convert an URI to an IDN compatible URI + * + * @param string $uri + * @return string + */ + public static function convertToIdn(string $uri): string + { + $parts = parse_url($uri); + if (!empty($parts['scheme']) && !empty($parts['host'])) { + $parts['host'] = idn_to_ascii($parts['host']); + $uri = Uri::fromParts($parts); + } else { + $parts = explode('@', $uri); + if (count($parts) == 2) { + $uri = $parts[0] . '@' . idn_to_ascii($parts[1]); + } else { + $uri = idn_to_ascii($uri); + } + } + + return $uri; + } /** * Switch the scheme of an url between http and https @@ -515,8 +570,30 @@ class Network header('Last-Modified: ' . $last_modified); if ($flag_not_modified) { - header("HTTP/1.1 304 Not Modified"); - exit; + throw new NotModifiedException(); } } + + /** + * Check if the given URL is a local link + * + * @param string $url + * @return bool + */ + public static function isLocalLink(string $url) + { + return (strpos(Strings::normaliseLink($url), Strings::normaliseLink(DI::baseUrl())) !== false); + } + + /** + * Check if the given URL is a valid HTTP/HTTPS URL + * + * @param string $url + * @return bool + */ + public static function isValidHttpUrl(string $url) + { + $scheme = parse_url($url, PHP_URL_SCHEME); + return !empty($scheme) && in_array($scheme, ['http', 'https']) && parse_url($url, PHP_URL_HOST); + } }