diff --git a/classes/File_redirection.php b/classes/File_redirection.php index a324deaa5d..03df3de1b1 100644 --- a/classes/File_redirection.php +++ b/classes/File_redirection.php @@ -195,6 +195,7 @@ class File_redirection extends Managed_DataObject $redir->httpcode = $redir_info['code']; $redir->redirections = intval($redir_info['redirects']); + $redir->redir_url = $redir_info['url']; $redir->file = new File(); $redir->file->url = $redir_info['url']; $redir->file->mimetype = $redir_info['type']; @@ -396,4 +397,4 @@ class File_redirection extends Managed_DataObject return $this->file; } -} +} \ No newline at end of file diff --git a/lib/httpclient.php b/lib/httpclient.php index 4b854914c9..b386ce3987 100644 --- a/lib/httpclient.php +++ b/lib/httpclient.php @@ -80,7 +80,7 @@ class GNUsocial_HTTPResponse extends HTTP_Request2_Response */ function getUrl() { - return $this->url; + return $this->effectiveUrl; } /** @@ -360,4 +360,4 @@ class HTTPClient extends HTTP_Request2 } while ($maxRedirs); return new GNUsocial_HTTPResponse($response, $this->getUrl(), $redirs); } -} +} \ No newline at end of file diff --git a/lib/util.php b/lib/util.php index 3b5bb2de08..fd903d5505 100644 --- a/lib/util.php +++ b/lib/util.php @@ -980,10 +980,16 @@ function common_linkify($url) { } else { $canon = File_redirection::_canonUrl($url); $longurl_data = File_redirection::where($canon, common_config('attachments', 'process_links')); - $longurl = $longurl_data->url; + + if(isset($longurl_data->redir_url)) { + $longurl = $longurl_data->redir_url; + } else { + // e.g. local files + $longurl = $longurl_data->url; + } } - - $attrs = array('href' => $canon, 'title' => $longurl); + + $attrs = array('href' => $longurl, 'title' => $longurl); $is_attachment = false; $attachment_id = null; @@ -2430,4 +2436,4 @@ function html_sprintf() $args[$i] = htmlspecialchars($args[$i]); } return call_user_func_array('sprintf', $args); -} +} \ No newline at end of file