From 15c642abe50f5e5563fa5e44fc32a0722614fbda Mon Sep 17 00:00:00 2001 From: eldadfux Date: Sat, 6 Jul 2019 22:43:45 +0300 Subject: [PATCH] Added fallback for /favicon.ico path in favicon avatar route --- app/controllers/avatars.php | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/app/controllers/avatars.php b/app/controllers/avatars.php index dd9c1611b6..3264dd89ee 100644 --- a/app/controllers/avatars.php +++ b/app/controllers/avatars.php @@ -192,7 +192,7 @@ $utopia->get('/v1/avatars/favicon') case 'icon': case 'shortcut icon': //case 'apple-touch-icon': - $ext = pathinfo($absolute, PATHINFO_EXTENSION); + $ext = pathinfo(parse_url($absolute, PHP_URL_PATH), PATHINFO_EXTENSION); switch ($ext) { case 'ico': @@ -218,11 +218,18 @@ $utopia->get('/v1/avatars/favicon') } if(empty($outputHref) || empty($outputExt)) { - throw new Exception('Favicon not found', 404); + $default = parse_url($url); + + $outputHref = $default['scheme'] . '://' . $default['host'] . '/favicon.ico'; + $outputExt = 'ico'; } if('ico' == $outputExt) { // Skip crop, Imagick isn\'t supporting icon files - $data = file_get_contents($outputHref, false); + $data = @file_get_contents($outputHref, false); + + if(empty($data) || (mb_substr($data, 0, 5) === 'save($key, $data);