Files
Nikolai ShcheglovandAlexandre Alapetite a93bd27b7d Fix muting of feeds gone with HTTP 410 (#9391)
* Fix muting of feeds gone with HTTP 410

A feed answering HTTP 410 Gone is meant to be muted (#3561), but:

* Since #6037, FreshRSS_Feed_Exception extends Minz_Exception, which
  resets any code other than its own error levels to 0, so the check for
  410 never matched. FreshRSS_Feed_Exception now keeps the HTTP status
  code it is given.
* FreshRSS_FeedDAO::mute() mutes by negating the TTL, which leaves a feed
  with the default TTL (0) unmuted. Mute the feed the way the feed
  settings and dynamic OPML categories do instead.

* A bit of cleaning

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2026-10-03 09:59:51 +02:00

14 lines
435 B
PHP

<?php
declare(strict_types=1);
class FreshRSS_Feed_Exception extends Minz_Exception {
/**
* @param int $code The HTTP status code when known, e.g. 410 Gone, which mutes the feed
*/
public function __construct(string $message = '', int $code = 0, ?Throwable $previous = null) {
parent::__construct($message, previous: $previous);
$this->code = $code; // Minz_Exception would reset it, keeping only its own error levels
}
}