From 07889817830f96ab089d8a06411d328364dd4bd5 Mon Sep 17 00:00:00 2001 From: Jonas Kvinge Date: Fri, 14 Aug 2020 20:20:41 +0200 Subject: [PATCH] Set QNetworkRequest::RedirectPolicyAttribute with Qt >= 5.9 --- src/core/network.cpp | 4 ++++ src/covermanager/albumcoverfetchersearch.cpp | 4 ++++ src/covermanager/albumcoverloader.cpp | 8 ++++++++ src/covermanager/deezercoverprovider.cpp | 4 ++++ src/covermanager/discogscoverprovider.cpp | 4 ++++ src/covermanager/lastfmcoverprovider.cpp | 4 ++++ src/covermanager/musicbrainzcoverprovider.cpp | 4 ++++ src/covermanager/musixmatchcoverprovider.cpp | 4 ++++ src/covermanager/qobuzcoverprovider.cpp | 9 +++++++++ src/covermanager/spotifycoverprovider.cpp | 10 +++++++++- src/covermanager/tidalcoverprovider.cpp | 4 ++++ src/lyrics/auddlyricsprovider.cpp | 4 ++++ src/lyrics/chartlyricsprovider.cpp | 8 +++++++- src/lyrics/geniuslyricsprovider.cpp | 12 ++++++++++++ src/lyrics/lololyricsprovider.cpp | 4 ++++ src/lyrics/musixmatchlyricsprovider.cpp | 4 ++++ src/lyrics/ovhlyricsprovider.cpp | 4 ++++ src/musicbrainz/acoustidclient.cpp | 4 ++++ src/musicbrainz/musicbrainzclient.cpp | 8 ++++++++ src/scrobbler/listenbrainzscrobbler.cpp | 8 ++++++++ src/scrobbler/scrobblingapi20.cpp | 8 ++++++++ src/subsonic/subsonicbaserequest.cpp | 4 ++++ src/subsonic/subsonicrequest.cpp | 4 ++++ src/subsonic/subsonicservice.cpp | 10 ++++++++++ src/tidal/tidalbaserequest.cpp | 4 ++++ src/tidal/tidalfavoriterequest.cpp | 8 ++++++++ src/tidal/tidalrequest.cpp | 4 ++++ 27 files changed, 155 insertions(+), 2 deletions(-) diff --git a/src/core/network.cpp b/src/core/network.cpp index 388a5d3f9..f49f4466e 100644 --- a/src/core/network.cpp +++ b/src/core/network.cpp @@ -127,7 +127,11 @@ QNetworkReply *NetworkAccessManager::createRequest(Operation op, const QNetworkR } QNetworkRequest new_request(request); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + new_request.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); +#else new_request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); +#endif new_request.setRawHeader("User-Agent", user_agent); if (op == QNetworkAccessManager::PostOperation && !new_request.header(QNetworkRequest::ContentTypeHeader).isValid()) { diff --git a/src/covermanager/albumcoverfetchersearch.cpp b/src/covermanager/albumcoverfetchersearch.cpp index ffcf56bac..9efc9b71b 100644 --- a/src/covermanager/albumcoverfetchersearch.cpp +++ b/src/covermanager/albumcoverfetchersearch.cpp @@ -269,7 +269,11 @@ void AlbumCoverFetcherSearch::FetchMoreImages() { qLog(Debug) << "Loading" << result.artist << result.album << result.image_url << "from" << result.provider << "with current score" << result.score(); QNetworkRequest req(result.image_url); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); +#else req.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); +#endif QNetworkReply *image_reply = network_->get(req); connect(image_reply, &QNetworkReply::finished, [=] { ProviderCoverFetchFinished(image_reply); }); pending_image_loads_[image_reply] = result; diff --git a/src/covermanager/albumcoverloader.cpp b/src/covermanager/albumcoverloader.cpp index ae3b1c9a6..bff573cfb 100644 --- a/src/covermanager/albumcoverloader.cpp +++ b/src/covermanager/albumcoverloader.cpp @@ -378,7 +378,11 @@ AlbumCoverLoader::TryLoadResult AlbumCoverLoader::TryLoadImage(Task *task) { } else if (network_->supportedSchemes().contains(cover_url.scheme())) { // Remote URL QNetworkRequest request(cover_url); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + request.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); +#else request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); +#endif QNetworkReply *reply = network_->get(request); connect(reply, &QNetworkReply::finished, [=] { RemoteFetchFinished(reply, cover_url); }); @@ -405,7 +409,11 @@ void AlbumCoverLoader::RemoteFetchFinished(QNetworkReply *reply, const QUrl &cov return; // Give up. } QNetworkRequest request = reply->request(); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + request.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); +#else request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); +#endif request.setUrl(redirect.toUrl()); QNetworkReply *redirected_reply = network_->get(request); connect(redirected_reply, &QNetworkReply::finished, [=] { RemoteFetchFinished(redirected_reply, redirect.toUrl()); }); diff --git a/src/covermanager/deezercoverprovider.cpp b/src/covermanager/deezercoverprovider.cpp index c05749e0f..ebfca2275 100644 --- a/src/covermanager/deezercoverprovider.cpp +++ b/src/covermanager/deezercoverprovider.cpp @@ -100,7 +100,11 @@ bool DeezerCoverProvider::StartSearch(const QString &artist, const QString &albu QUrl url(kApiUrl + QString("/") + resource); url.setQuery(url_query); QNetworkRequest req(url); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); +#else req.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); +#endif QNetworkReply *reply = network_->get(req); replies_ << reply; connect(reply, &QNetworkReply::finished, [=] { HandleSearchReply(reply, id); }); diff --git a/src/covermanager/discogscoverprovider.cpp b/src/covermanager/discogscoverprovider.cpp index b16dd5d56..7b6e7983d 100644 --- a/src/covermanager/discogscoverprovider.cpp +++ b/src/covermanager/discogscoverprovider.cpp @@ -174,7 +174,11 @@ QNetworkReply *DiscogsCoverProvider::CreateRequest(QUrl url, const ParamList &pa url_query.addQueryItem("Signature", QUrl::toPercentEncoding(signature.toBase64())); QNetworkRequest req(url); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); +#else req.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); +#endif QNetworkReply *reply = network_->get(req); replies_ << reply; diff --git a/src/covermanager/lastfmcoverprovider.cpp b/src/covermanager/lastfmcoverprovider.cpp index 573292a2f..20ffdeffc 100644 --- a/src/covermanager/lastfmcoverprovider.cpp +++ b/src/covermanager/lastfmcoverprovider.cpp @@ -114,7 +114,11 @@ bool LastFmCoverProvider::StartSearch(const QString &artist, const QString &albu QUrl url(kUrl); QNetworkRequest req(url); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); +#else req.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); +#endif req.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); QNetworkReply *reply = network_->post(req, url_query.toString(QUrl::FullyEncoded).toUtf8()); replies_ << reply; diff --git a/src/covermanager/musicbrainzcoverprovider.cpp b/src/covermanager/musicbrainzcoverprovider.cpp index 61d9ebbc4..9d8fd9159 100644 --- a/src/covermanager/musicbrainzcoverprovider.cpp +++ b/src/covermanager/musicbrainzcoverprovider.cpp @@ -99,7 +99,11 @@ void MusicbrainzCoverProvider::SendSearchRequest(const SearchRequest &request) { QUrl url(kReleaseSearchUrl); url.setQuery(url_query); QNetworkRequest req(url); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); +#else req.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); +#endif QNetworkReply *reply = network_->get(req); replies_ << reply; connect(reply, &QNetworkReply::finished, [=] { HandleSearchReply(reply, request.id); }); diff --git a/src/covermanager/musixmatchcoverprovider.cpp b/src/covermanager/musixmatchcoverprovider.cpp index c699cb61f..08da96af0 100644 --- a/src/covermanager/musixmatchcoverprovider.cpp +++ b/src/covermanager/musixmatchcoverprovider.cpp @@ -79,7 +79,11 @@ bool MusixmatchCoverProvider::StartSearch(const QString &artist, const QString & QUrl url(QString("https://www.musixmatch.com/album/%1/%2").arg(artist_stripped).arg(album_stripped)); QNetworkRequest req(url); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); +#else req.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); +#endif QNetworkReply *reply = network_->get(req); replies_ << reply; connect(reply, &QNetworkReply::finished, [=] { HandleSearchReply(reply, id, artist, album); }); diff --git a/src/covermanager/qobuzcoverprovider.cpp b/src/covermanager/qobuzcoverprovider.cpp index 958e97f57..e9f7b65d3 100644 --- a/src/covermanager/qobuzcoverprovider.cpp +++ b/src/covermanager/qobuzcoverprovider.cpp @@ -109,6 +109,11 @@ void QobuzCoverProvider::Authenticate() { QUrl url(kAuthUrl); QNetworkRequest req(url); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); +#else + req.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); +#endif req.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); QByteArray query = url_query.toString(QUrl::FullyEncoded).toUtf8(); @@ -327,7 +332,11 @@ bool QobuzCoverProvider::StartSearch(const QString &artist, const QString &album url.setQuery(url_query); QNetworkRequest req(url); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); +#else req.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); +#endif req.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); req.setRawHeader("X-App-Id", kAppID); req.setRawHeader("X-User-Auth-Token", user_auth_token_.toUtf8()); diff --git a/src/covermanager/spotifycoverprovider.cpp b/src/covermanager/spotifycoverprovider.cpp index 9502f2578..35cb3a3f4 100644 --- a/src/covermanager/spotifycoverprovider.cpp +++ b/src/covermanager/spotifycoverprovider.cpp @@ -232,8 +232,12 @@ void SpotifyCoverProvider::RequestAccessToken(const QString code, const QUrl red } QUrl new_url(kOAuthAccessTokenUrl); - QNetworkRequest req = QNetworkRequest(new_url); + QNetworkRequest req(new_url); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); +#else req.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); +#endif req.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); QString auth_header_data = QByteArray::fromBase64(kClientIDB64) + QString(":") + QByteArray::fromBase64(kClientSecretB64); req.setRawHeader("Authorization", "Basic " + auth_header_data.toUtf8().toBase64()); @@ -388,7 +392,11 @@ bool SpotifyCoverProvider::StartSearch(const QString &artist, const QString &alb QUrl url(kApiUrl + QString("/search")); url.setQuery(url_query); QNetworkRequest req(url); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); +#else req.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); +#endif req.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); req.setRawHeader("Authorization", "Bearer " + access_token_.toUtf8()); diff --git a/src/covermanager/tidalcoverprovider.cpp b/src/covermanager/tidalcoverprovider.cpp index f85fa11ae..55c250a91 100644 --- a/src/covermanager/tidalcoverprovider.cpp +++ b/src/covermanager/tidalcoverprovider.cpp @@ -106,7 +106,11 @@ bool TidalCoverProvider::StartSearch(const QString &artist, const QString &album QUrl url(kApiUrl + QString("/") + resource); url.setQuery(url_query); QNetworkRequest req(url); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); +#else req.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); +#endif req.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); if (!service_->access_token().isEmpty()) req.setRawHeader("authorization", "Bearer " + service_->access_token().toUtf8()); if (!service_->session_id().isEmpty()) req.setRawHeader("X-Tidal-SessionId", service_->session_id().toUtf8()); diff --git a/src/lyrics/auddlyricsprovider.cpp b/src/lyrics/auddlyricsprovider.cpp index cfabe2e26..6e64d37a7 100644 --- a/src/lyrics/auddlyricsprovider.cpp +++ b/src/lyrics/auddlyricsprovider.cpp @@ -74,7 +74,11 @@ bool AuddLyricsProvider::StartSearch(const QString &artist, const QString &album QUrl url(kUrlSearch); url.setQuery(url_query); QNetworkRequest req(url); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); +#else req.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); +#endif QNetworkReply *reply = network_->get(req); replies_ << reply; connect(reply, &QNetworkReply::finished, [=] { HandleSearchReply(reply, id, artist, title); }); diff --git a/src/lyrics/chartlyricsprovider.cpp b/src/lyrics/chartlyricsprovider.cpp index a0cceedd2..5907b307c 100644 --- a/src/lyrics/chartlyricsprovider.cpp +++ b/src/lyrics/chartlyricsprovider.cpp @@ -66,7 +66,13 @@ bool ChartLyricsProvider::StartSearch(const QString &artist, const QString&, con QUrl url(kUrlSearch); url.setQuery(url_query); - QNetworkReply *reply = network_->get(QNetworkRequest(url)); + QNetworkRequest req(url); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); +#else + req.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); +#endif + QNetworkReply *reply = network_->get(req); replies_ << reply; connect(reply, &QNetworkReply::finished, [=] { HandleSearchReply(reply, id, artist, title); }); diff --git a/src/lyrics/geniuslyricsprovider.cpp b/src/lyrics/geniuslyricsprovider.cpp index 2ce49ef36..f25ccdd2e 100644 --- a/src/lyrics/geniuslyricsprovider.cpp +++ b/src/lyrics/geniuslyricsprovider.cpp @@ -190,7 +190,11 @@ void GeniusLyricsProvider::RequestAccessToken(const QUrl &url, const QUrl &redir QUrl new_url(kOAuthAccessTokenUrl); QNetworkRequest req = QNetworkRequest(new_url); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); +#else req.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); +#endif QByteArray query = new_url_query.toString(QUrl::FullyEncoded).toUtf8(); QNetworkReply *reply = network_->post(req, query); @@ -322,7 +326,11 @@ bool GeniusLyricsProvider::StartSearch(const QString &artist, const QString &alb QUrl url(kUrlSearch); url.setQuery(url_query); QNetworkRequest req(url); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); +#else req.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); +#endif req.setRawHeader("Authorization", "Bearer " + access_token_.toUtf8()); QNetworkReply *reply = network_->get(req); replies_ << reply; @@ -440,7 +448,11 @@ void GeniusLyricsProvider::HandleSearchReply(QNetworkReply *reply, const quint64 search->requests_lyric_.insert(url, lyric); QNetworkRequest req(url); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); +#else req.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); +#endif QNetworkReply *new_reply = network_->get(req); replies_ << new_reply; connect(new_reply, &QNetworkReply::finished, [=] { HandleLyricReply(new_reply, search->id, url); }); diff --git a/src/lyrics/lololyricsprovider.cpp b/src/lyrics/lololyricsprovider.cpp index 4ae91f8f4..b2056e063 100644 --- a/src/lyrics/lololyricsprovider.cpp +++ b/src/lyrics/lololyricsprovider.cpp @@ -69,7 +69,11 @@ bool LoloLyricsProvider::StartSearch(const QString &artist, const QString &album QUrl url(kUrlSearch); url.setQuery(url_query); QNetworkRequest req(url); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); +#else req.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); +#endif QNetworkReply *reply = network_->get(req); replies_ << reply; connect(reply, &QNetworkReply::finished, [=] { HandleSearchReply(reply, id, artist, title); }); diff --git a/src/lyrics/musixmatchlyricsprovider.cpp b/src/lyrics/musixmatchlyricsprovider.cpp index 56e64720e..5ade90f60 100644 --- a/src/lyrics/musixmatchlyricsprovider.cpp +++ b/src/lyrics/musixmatchlyricsprovider.cpp @@ -76,7 +76,11 @@ bool MusixmatchLyricsProvider::StartSearch(const QString &artist, const QString QUrl url(QString("https://www.musixmatch.com/lyrics/%1/%2").arg(artist_stripped).arg(title_stripped)); QNetworkRequest req(url); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); +#else req.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); +#endif QNetworkReply *reply = network_->get(req); replies_ << reply; connect(reply, &QNetworkReply::finished, [=] { HandleSearchReply(reply, id, artist, album, title); }); diff --git a/src/lyrics/ovhlyricsprovider.cpp b/src/lyrics/ovhlyricsprovider.cpp index 0ac7f5916..bd0c9abf0 100644 --- a/src/lyrics/ovhlyricsprovider.cpp +++ b/src/lyrics/ovhlyricsprovider.cpp @@ -57,7 +57,11 @@ bool OVHLyricsProvider::StartSearch(const QString &artist, const QString &album, QUrl url(kUrlSearch + QString(QUrl::toPercentEncoding(artist)) + "/" + QString(QUrl::toPercentEncoding(title))); QNetworkRequest req(url); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); +#else req.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); +#endif QNetworkReply *reply = network_->get(req); replies_ << reply; connect(reply, &QNetworkReply::finished, [=] { HandleSearchReply(reply, id, artist, title); }); diff --git a/src/musicbrainz/acoustidclient.cpp b/src/musicbrainz/acoustidclient.cpp index f94984fe2..b71b65f58 100644 --- a/src/musicbrainz/acoustidclient.cpp +++ b/src/musicbrainz/acoustidclient.cpp @@ -82,7 +82,11 @@ void AcoustidClient::Start(const int id, const QString &fingerprint, int duratio url.setQuery(url_query); QNetworkRequest req(url); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); +#else req.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); +#endif QNetworkReply *reply = network_->get(req); connect(reply, &QNetworkReply::finished, [=] { RequestFinished(reply, id); }); requests_[id] = reply; diff --git a/src/musicbrainz/musicbrainzclient.cpp b/src/musicbrainz/musicbrainzclient.cpp index 960732af1..10f6166ee 100644 --- a/src/musicbrainz/musicbrainzclient.cpp +++ b/src/musicbrainz/musicbrainzclient.cpp @@ -161,7 +161,11 @@ void MusicBrainzClient::StartDiscIdRequest(const QString &discid) { url.setQuery(url_query); QNetworkRequest req(url); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); +#else req.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); +#endif QNetworkReply *reply = network_->get(req); connect(reply, &QNetworkReply::finished, [=] { DiscIdRequestFinished(discid, reply); }); @@ -183,7 +187,11 @@ void MusicBrainzClient::FlushRequests() { url.setQuery(url_query); QNetworkRequest req(url); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); +#else req.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); +#endif QNetworkReply *reply = network_->get(req); connect(reply, &QNetworkReply::finished, [=] { RequestFinished(reply, request.id, request.number); }); requests_.insert(request.id, reply); diff --git a/src/scrobbler/listenbrainzscrobbler.cpp b/src/scrobbler/listenbrainzscrobbler.cpp index 0b6be2a42..11add9bd6 100644 --- a/src/scrobbler/listenbrainzscrobbler.cpp +++ b/src/scrobbler/listenbrainzscrobbler.cpp @@ -242,7 +242,11 @@ void ListenBrainzScrobbler::RequestAccessToken(const QUrl &redirect_url, const Q QUrl session_url(kOAuthAccessTokenUrl); QNetworkRequest req(session_url); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); +#else req.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); +#endif req.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); QByteArray query = url_query.toString(QUrl::FullyEncoded).toUtf8(); QNetworkReply *reply = network_->post(req, query); @@ -345,7 +349,11 @@ void ListenBrainzScrobbler::AuthenticateReplyFinished(QNetworkReply *reply) { QNetworkReply *ListenBrainzScrobbler::CreateRequest(const QUrl &url, const QJsonDocument &json_doc) { QNetworkRequest req(url); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); +#else req.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); +#endif req.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"); req.setRawHeader("Authorization", QString("Token %1").arg(user_token_).toUtf8()); QNetworkReply *reply = network_->post(req, json_doc.toJson()); diff --git a/src/scrobbler/scrobblingapi20.cpp b/src/scrobbler/scrobblingapi20.cpp index 46ccfa0b9..a4ea6563a 100644 --- a/src/scrobbler/scrobblingapi20.cpp +++ b/src/scrobbler/scrobblingapi20.cpp @@ -245,7 +245,11 @@ void ScrobblingAPI20::RequestSession(const QString &token) { session_url.setQuery(session_url_query); QNetworkRequest req(session_url); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); +#else req.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); +#endif QNetworkReply *reply = network()->get(req); replies_ << reply; connect(reply, &QNetworkReply::finished, [=] { AuthenticateReplyFinished(reply); }); @@ -377,7 +381,11 @@ QNetworkReply *ScrobblingAPI20::CreateRequest(const ParamList &request_params) { QUrl url(api_url_); QNetworkRequest req(url); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); +#else req.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); +#endif req.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); QByteArray query = url_query.toString(QUrl::FullyEncoded).toUtf8(); QNetworkReply *reply = network()->post(req, query); diff --git a/src/subsonic/subsonicbaserequest.cpp b/src/subsonic/subsonicbaserequest.cpp index 07b3482fd..ed1be0d8a 100644 --- a/src/subsonic/subsonicbaserequest.cpp +++ b/src/subsonic/subsonicbaserequest.cpp @@ -94,7 +94,11 @@ QNetworkReply *SubsonicBaseRequest::CreateGetRequest(const QString &ressource_na } req.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); +#else req.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); +#endif QNetworkReply *reply = network_->get(req); connect(reply, SIGNAL(sslErrors(QList)), this, SLOT(HandleSSLErrors(QList))); diff --git a/src/subsonic/subsonicrequest.cpp b/src/subsonic/subsonicrequest.cpp index 8a4409bc7..fed82f2f8 100644 --- a/src/subsonic/subsonicrequest.cpp +++ b/src/subsonic/subsonicrequest.cpp @@ -710,7 +710,11 @@ void SubsonicRequest::FlushAlbumCoverRequests() { ++album_covers_requests_active_; QNetworkRequest req(request.url); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); +#else req.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); +#endif if (!verify_certificate()) { QSslConfiguration sslconfig = QSslConfiguration::defaultConfiguration(); diff --git a/src/subsonic/subsonicservice.cpp b/src/subsonic/subsonicservice.cpp index 75a50a765..c07edb1ef 100644 --- a/src/subsonic/subsonicservice.cpp +++ b/src/subsonic/subsonicservice.cpp @@ -76,6 +76,10 @@ SubsonicService::SubsonicService(Application *app, QObject *parent) ping_redirects_(0) { +#if (QT_VERSION >= QT_VERSION_CHECK(5, 9, 0)) + network_->setRedirectPolicy(QNetworkRequest::NoLessSafeRedirectPolicy); +#endif + app->player()->RegisterUrlHandler(url_handler_); // Backend @@ -182,6 +186,12 @@ void SubsonicService::SendPing(QUrl url, const QString &username, const QString req.setSslConfiguration(sslconfig); } +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); +#else + req.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); +#endif + req.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); errors_.clear(); diff --git a/src/tidal/tidalbaserequest.cpp b/src/tidal/tidalbaserequest.cpp index 12146efad..c8819a11d 100644 --- a/src/tidal/tidalbaserequest.cpp +++ b/src/tidal/tidalbaserequest.cpp @@ -61,7 +61,11 @@ QNetworkReply *TidalBaseRequest::CreateRequest(const QString &ressource_name, co QUrl url(kApiUrl + QString("/") + ressource_name); url.setQuery(url_query); QNetworkRequest req(url); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); +#else req.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); +#endif req.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); if (!access_token().isEmpty()) req.setRawHeader("authorization", "Bearer " + access_token().toUtf8()); if (!session_id().isEmpty()) req.setRawHeader("X-Tidal-SessionId", session_id().toUtf8()); diff --git a/src/tidal/tidalfavoriterequest.cpp b/src/tidal/tidalfavoriterequest.cpp index c5e4927c9..8535b1a8a 100644 --- a/src/tidal/tidalfavoriterequest.cpp +++ b/src/tidal/tidalfavoriterequest.cpp @@ -135,7 +135,11 @@ void TidalFavoriteRequest::AddFavorites(const FavoriteType type, const SongList QUrl url(api_url() + QString("/") + "users/" + QString::number(service_->user_id()) + "/favorites/" + FavoriteText(type)); QNetworkRequest req(url); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); +#else req.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); +#endif req.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); if (!access_token().isEmpty()) req.setRawHeader("authorization", "Bearer " + access_token().toUtf8()); if (!session_id().isEmpty()) req.setRawHeader("X-Tidal-SessionId", session_id().toUtf8()); @@ -239,7 +243,11 @@ void TidalFavoriteRequest::RemoveFavorites(const FavoriteType type, const QStrin QUrl url(api_url() + QString("/") + "users/" + QString::number(service_->user_id()) + "/favorites/" + FavoriteText(type) + QString("/") + id); url.setQuery(url_query); QNetworkRequest req(url); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); +#else req.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); +#endif req.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); if (!access_token().isEmpty()) req.setRawHeader("authorization", "Bearer " + access_token().toUtf8()); if (!session_id().isEmpty()) req.setRawHeader("X-Tidal-SessionId", session_id().toUtf8()); diff --git a/src/tidal/tidalrequest.cpp b/src/tidal/tidalrequest.cpp index d1c7c6bb6..f4ecea23f 100644 --- a/src/tidal/tidalrequest.cpp +++ b/src/tidal/tidalrequest.cpp @@ -1118,7 +1118,11 @@ void TidalRequest::FlushAlbumCoverRequests() { ++album_covers_requests_active_; QNetworkRequest req(request.url); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); +#else req.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); +#endif QNetworkReply *reply = network_->get(req); album_cover_replies_ << reply; connect(reply, &QNetworkReply::finished, [=] { AlbumCoverReceived(reply, request.album_id, request.url, request.filename); });