From a9140232e596b9fa2a8d87ffe2d6440ada64a255 Mon Sep 17 00:00:00 2001 From: Jonas Kvinge Date: Tue, 29 Jul 2025 23:42:38 +0200 Subject: [PATCH] Add workaround for QTBUG-135641 Fixes #1594 --- src/core/httpbaserequest.cpp | 4 ++++ src/lyrics/htmllyricsprovider.cpp | 13 ++++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/core/httpbaserequest.cpp b/src/core/httpbaserequest.cpp index fbcaa2b97..849496b2e 100644 --- a/src/core/httpbaserequest.cpp +++ b/src/core/httpbaserequest.cpp @@ -157,12 +157,16 @@ void HttpBaseRequest::HandleSSLErrors(const QList &ssl_errors) { HttpBaseRequest::ReplyDataResult HttpBaseRequest::GetReplyData(QNetworkReply *reply) { if (reply->error() != QNetworkReply::NoError) { + if (reply->error() >= 200) { + reply->readAll(); // QTBUG-135641 + } return ReplyDataResult(ErrorCode::NetworkError, QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error())); } if (reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).isValid()) { const int http_status_code = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); if (http_status_code < 200 || http_status_code > 207) { + reply->readAll(); // QTBUG-135641 return ReplyDataResult(ErrorCode::HttpError, QStringLiteral("Received HTTP code %1").arg(http_status_code)); } } diff --git a/src/lyrics/htmllyricsprovider.cpp b/src/lyrics/htmllyricsprovider.cpp index 1b2cbe165..2773ca245 100644 --- a/src/lyrics/htmllyricsprovider.cpp +++ b/src/lyrics/htmllyricsprovider.cpp @@ -77,6 +77,9 @@ void HtmlLyricsProvider::HandleLyricsReply(QNetworkReply *reply, const int id, c const QScopeGuard search_finished = qScopeGuard([this, id, &results]() { Q_EMIT SearchFinished(id, results); }); if (reply->error() != QNetworkReply::NoError) { + if (reply->error() >= 200) { + reply->readAll(); // QTBUG-135641 + } if (reply->error() == QNetworkReply::ContentNotFoundError) { qLog(Debug) << name_ << "No lyrics for" << request.artist << request.album << request.title; } @@ -86,9 +89,13 @@ void HtmlLyricsProvider::HandleLyricsReply(QNetworkReply *reply, const int id, c return; } - if (reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() != 200) { - qLog(Error) << name_ << "Received HTTP code" << reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); - return; + if (reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).isValid()) { + const int http_status_code = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); + if (http_status_code < 200 || http_status_code > 207) { + qLog(Error) << name_ << "Received HTTP code" << reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); + reply->readAll(); // QTBUG-135641 + return; + } } const QByteArray data = reply->readAll();