Added support for HTTP redirection in downlaod threadOF

This commit is contained in:
Christophe Dumez
2010-01-29 18:42:20 +00:00
parent 31819e148f
commit fdccf9cc1c
3 changed files with 15 additions and 0 deletions

View File

@@ -1,6 +1,7 @@
* Unreleased - Christophe Dumez <chris@qbittorrent.org> - v2.1.3
- BUGFIX: Fix "Append .!qB extension to complete files" (libtorrent v0.15)
- BUGFIX: Make sure bandwidth limiting dialogs are centered on screen
- BUGFIX: Added support for HTTP redirection
* Sun Jan 24 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.1.2
- FEATURE: Added back file prioritizing in a torrent

View File

@@ -56,6 +56,18 @@ void downloadThread::processDlFinished(QNetworkReply* reply) {
// Failure
emit downloadFailure(url, errorCodeToString(reply->error()));
} else {
QVariant redirection = reply->attribute(QNetworkRequest::RedirectionTargetAttribute);
if(redirection.isValid()) {
// We should redirect
qDebug("Redirecting from %s to %s", url.toLocal8Bit().data(), redirection.toUrl().toString().toLocal8Bit().data());
redirect_mapping.insert(redirection.toUrl().toString(), url);
downloadUrl(redirection.toUrl().toString());
return;
}
// Checking if it was redirecting, restoring initial URL
if(redirect_mapping.contains(url)) {
url = redirect_mapping.take(url);
}
// Success
QString filePath;
QTemporaryFile tmpfile;

View File

@@ -33,6 +33,7 @@
#include <QNetworkReply>
#include <QObject>
#include <QHash>
class QNetworkAccessManager;
@@ -41,6 +42,7 @@ class downloadThread : public QObject {
private:
QNetworkAccessManager *networkManager;
QHash<QString, QString> redirect_mapping;
signals:
void downloadFinished(QString url, QString file_path);