diff --git a/boot.php b/boot.php index 2242ba476d..9ee0c98df7 100644 --- a/boot.php +++ b/boot.php @@ -526,6 +526,7 @@ class App { private $curl_code; private $curl_content_type; private $curl_headers; + private $curl_redirect_url; private $cached_profile_image; private $cached_profile_picdate; @@ -909,6 +910,14 @@ class App { return $this->curl_headers; } + function set_curl_redirect_url($url) { + $this->curl_redirect_url = $url; + } + + function get_curl_redirect_url() { + return $this->curl_redirect_url; + } + function get_cached_avatar_image($avatar_image){ return $avatar_image; diff --git a/include/network.php b/include/network.php index cc267966e8..1fd3792753 100644 --- a/include/network.php +++ b/include/network.php @@ -136,6 +136,10 @@ function z_fetch_url($url,$binary = false, &$redirects = 0, $opts=array()) { $base = substr($base,strlen($chunk)); } + $a->set_curl_code($http_code); + $a->set_curl_content_type($curl_info['content_type']); + $a->set_curl_headers($header); + if($http_code == 301 || $http_code == 302 || $http_code == 303 || $http_code == 307) { $new_location_info = @parse_url($curl_info["redirect_url"]); $old_location_info = @parse_url($curl_info["url"]); @@ -154,16 +158,17 @@ function z_fetch_url($url,$binary = false, &$redirects = 0, $opts=array()) { if (filter_var($newurl, FILTER_VALIDATE_URL)) { $redirects++; @curl_close($ch); + $a->set_curl_redirect_url($newurl); return z_fetch_url($newurl,$binary, $redirects, $opts); } } + $a->set_curl_redirect_url($url); $a->set_curl_code($http_code); $a->set_curl_content_type($curl_info['content_type']); $body = substr($s,strlen($header)); - $a->set_curl_headers($header);