If HTTP requests are redirected, copy over original headers.
Issue #1042
This commit is contained in:
@@ -84,6 +84,7 @@
|
||||
66. Enable retina support for all builds.
|
||||
67. Store replaygain settings in Cantata's config file, as it appears MPD does
|
||||
not persist changes.
|
||||
68. If HTTP requests are redirected, copy over original headers.
|
||||
|
||||
2.0.1
|
||||
-----
|
||||
|
||||
@@ -128,8 +128,16 @@ void NetworkJob::jobFinished()
|
||||
|
||||
QVariant redirect = j->header(QNetworkRequest::LocationHeader);
|
||||
if (redirect.isValid() && ++numRedirects<constMaxRedirects) {
|
||||
QNetworkReply *newJob=static_cast<QNetworkAccessManager *>(j->manager())->get(QNetworkRequest(redirect.toUrl()));
|
||||
QNetworkRequest newReq(redirect.toUrl());
|
||||
QNetworkRequest origReq(job->request());
|
||||
// Copy headers...
|
||||
const QList<QByteArray> &headers=origReq.rawHeaderList();;
|
||||
foreach (const QByteArray &header, headers) {
|
||||
newReq.setRawHeader(header, origReq.rawHeader(header));
|
||||
}
|
||||
QNetworkReply *newJob=static_cast<QNetworkAccessManager *>(j->manager())->get(newReq);
|
||||
DBUG << j->url().toString() << "redirected to" << newJob->url().toString();
|
||||
|
||||
cancelJob();
|
||||
job=newJob;
|
||||
connectJob();
|
||||
|
||||
Reference in New Issue
Block a user