From 3a97d5880c021f50b5440e9ec42dabf8df9a77e0 Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Fri, 8 Mar 2024 09:43:08 +0100 Subject: [PATCH] fix #1314 --- src/librssguard/definitions/definitions.h | 2 ++ src/librssguard/services/standard/standardserviceroot.cpp | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/src/librssguard/definitions/definitions.h b/src/librssguard/definitions/definitions.h index 3bf71dc26..518e1bbbc 100644 --- a/src/librssguard/definitions/definitions.h +++ b/src/librssguard/definitions/definitions.h @@ -153,6 +153,8 @@ #define CLI_THREADS "threads" +#define HTTP_CODE_NOT_MODIFIED 304 + #define HTTP_HEADERS_ACCEPT "Accept" #define HTTP_HEADERS_CONTENT_TYPE "Content-Type" #define HTTP_HEADERS_CONTENT_LENGTH "Content-Length" diff --git a/src/librssguard/services/standard/standardserviceroot.cpp b/src/librssguard/services/standard/standardserviceroot.cpp index 29288770d..5f76c93eb 100644 --- a/src/librssguard/services/standard/standardserviceroot.cpp +++ b/src/librssguard/services/standard/standardserviceroot.cpp @@ -238,6 +238,14 @@ QList StandardServiceRoot::obtainNewMessages(Feed* feed, } else { f->setLastEtag(network_result.m_headers.value(QSL("etag"))); + + if (network_result.m_httpCode == HTTP_CODE_NOT_MODIFIED && feed_contents.trimmed().isEmpty()) { + // We very likely used "eTag" before and server reports that + // content was not modified since. + qWarningNN << LOGSEC_CORE << QUOTE_W_SPACE(feed->source()) + << "reported HTTP/304, meaning that the remote file did not change since last time we checked it."; + return {}; + } } } else if (f->sourceType() == StandardFeed::SourceType::EmbeddedBrowser) {