diff options
author | fox <[email protected]> | 2022-08-15 07:27:23 +0300 |
---|---|---|
committer | fox <[email protected]> | 2022-08-15 07:27:23 +0300 |
commit | 3b7174788db7eecb34a7baa77ae76fc297eb49c8 (patch) | |
tree | 2eb8e69fbeb9454f51ceb0159965c674361b0985 /classes/urlhelper.php | |
parent | ed2cbeffcc456a86726b52d37c977a35b895968c (diff) | |
parent | 830a20debf5f26fdd6f4c754a76498a19ead7d0d (diff) |
Merge pull request 'Handle no response body, file_get_contents() failure in UrlHelper::fetch()' (#78) from wn/tt-rss:feature/handle-no-response-body into master
Reviewed-on: https://dev.tt-rss.org/fox/tt-rss/pulls/78
Diffstat (limited to 'classes/urlhelper.php')
-rw-r--r-- | classes/urlhelper.php | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/classes/urlhelper.php b/classes/urlhelper.php index bb51f5d06..cdaa6cc87 100644 --- a/classes/urlhelper.php +++ b/classes/urlhelper.php @@ -462,7 +462,11 @@ class UrlHelper { } if (!$contents) { - self::$fetch_last_error = curl_errno($ch) . " " . curl_error($ch); + if (curl_errno($ch) === 0) { + self::$fetch_last_error = 'Successful response, but no content was received.'; + } else { + self::$fetch_last_error = curl_errno($ch) . " " . curl_error($ch); + } curl_close($ch); return false; } @@ -543,6 +547,11 @@ class UrlHelper { $data = @file_get_contents($url, false, $context); + if ($data === false) { + self::$fetch_last_error = "'file_get_contents' failed."; + return false; + } + foreach ($http_response_header as $header) { if (strstr($header, ": ") !== false) { list ($key, $value) = explode(": ", $header); @@ -578,6 +587,11 @@ class UrlHelper { return false; } + if (!$data) { + self::$fetch_last_error = 'Successful response, but no content was received.'; + return false; + } + $is_gzipped = RSSUtils::is_gzipped($data); if ($is_gzipped && $data) { |