Ver Fonte

SimplePie: Fix propagation of HTTP error codes (#7670)

* SimplePie: Fix propagation of HTTP error codes
fix https://github.com/FreshRSS/FreshRSS/issues/7038
https://github.com/FreshRSS/simplepie/pull/36
upstream https://github.com/simplepie/simplepie/pull/905

Co-authored-by: Edgar Alvarado <15692727+pe1uca@users.noreply.github.com>
Alexandre Alapetite há 9 meses atrás
pai
commit
b418b83bd4

+ 1 - 1
lib/composer.json

@@ -14,7 +14,7 @@
         "marienfressinaud/lib_opml": "0.5.1",
         "phpgt/cssxpath": "v1.3.0",
         "phpmailer/phpmailer": "6.10.0",
-        "simplepie/simplepie": "dev-freshrss#2e668d7b1bc2787310b99d2fd59bfda96e31b6ae"
+        "simplepie/simplepie": "dev-freshrss#9a1c69be7d9dc2b766cef8697a2f1e88ab9a64e5"
     },
     "config": {
         "sort-packages": true,

+ 1 - 1
lib/simplepie/simplepie/src/HTTP/FileClient.php

@@ -70,7 +70,7 @@ final class FileClient implements Client
         }
 
         if (!$file->success) {
-            throw new HttpException($file->error);
+            throw new HttpException($file->error, $file->get_status_code()); // FreshRSS https://github.com/simplepie/simplepie/pull/905
         }
 
         return $file;

+ 2 - 1
lib/simplepie/simplepie/src/SimplePie.php

@@ -1999,7 +1999,7 @@ class SimplePie
                             $this->status_code = $file->get_status_code();
                         } catch (HttpException $th) {
                             $this->check_modified = false;
-                            $this->status_code = 0;
+                            $this->status_code = $th->getCode(); // FreshRSS https://github.com/simplepie/simplepie/pull/905
 
                             if ($this->force_cache_fallback) {
                                 $this->data['cache_expiration_time'] = \SimplePie\HTTP\Utils::negociate_cache_expiration_time($this->data['headers'] ?? [], $this->cache_duration, $this->cache_duration_min, $this->cache_duration_max); // FreshRSS
@@ -2093,6 +2093,7 @@ class SimplePie
                 } catch (HttpException $th) {
                     // If the file connection has an error, set SimplePie::error to that and quit
                     $this->error = $th->getMessage();
+                    $this->status_code = $th->getCode(); // FreshRSS https://github.com/simplepie/simplepie/pull/905
 
                     return !empty($this->data);
                 }