]> git.wh0rd.org - tt-rss.git/blobdiff - include/functions.php
Обновить 'include/functions.php'
[tt-rss.git] / include / functions.php
index efa4ec8e7d5bc8d4cee7443a266bf638f5ddb3d5..6a12963902d80566e882beff125e4ca9d65e0330 100755 (executable)
@@ -11,6 +11,7 @@
        $fetch_last_error_code = false;
        $fetch_last_content_type = false;
        $fetch_last_error_content = false; // curl only for the time being
+       $fetch_effective_url = false;
        $fetch_curl_used = false;
        $suppress_debugging = false;
 
                global $fetch_last_error_content;
                global $fetch_last_content_type;
                global $fetch_last_modified;
+               global $fetch_effective_url;
                global $fetch_curl_used;
 
                $fetch_last_error = false;
                $fetch_last_content_type = "";
                $fetch_curl_used = false;
                $fetch_last_modified = "";
+               $fetch_effective_url = "";
 
                if (!is_array($options)) {
 
                        $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
                        $fetch_last_content_type = curl_getinfo($ch, CURLINFO_CONTENT_TYPE);
 
+                       $fetch_effective_url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
+
                        $fetch_last_error_code = $http_code;
 
                        if ($http_code != 200 || $type && strpos($fetch_last_content_type, "$type") === false) {
 
                         $context_options = array(
                                  'http' => array(
+                                               'header' => array(
+                                                       'Connection: close'
+                                               ),
                                                'method' => 'GET',
                                                'ignore_errors' => true,
                                                'timeout' => $timeout ? $timeout : FILE_FETCH_TIMEOUT,
 
                        $old_error = error_get_last();
 
+                       $fetch_effective_url = $url;
+
                        $data = @file_get_contents($url, false, $context);
 
                        if (isset($http_response_header) && is_array($http_response_header)) {
                                                        // e.g. if we were being redirected -- last one is the right one
                                                } else if ($key == 'last-modified') {
                                                        $fetch_last_modified = $value;
+                                               } else if ($key == 'location') {
+                                                       $fetch_effective_url = $value;
                                                }
                                        }