Handle HTTP redirections manually

Qt doesn't support Magnet protocol so we need to handle all redirections
manually to allow redirections to Magnet URIs.
This commit is contained in:
Vladimir Golovnev (Glassez) 2020-02-11 09:31:42 +03:00
parent 8b330e3ac0
commit 8bb34482ea
No known key found for this signature in database
GPG key ID: 52A2C7DEE2DFA6F7
3 changed files with 35 additions and 13 deletions

View file

@ -42,7 +42,7 @@ class DownloadHandlerImpl : public Net::DownloadHandler
Q_DISABLE_COPY(DownloadHandlerImpl)
public:
explicit DownloadHandlerImpl(const Net::DownloadRequest &downloadRequest, QObject *parent);
DownloadHandlerImpl(Net::DownloadManager *manager, const Net::DownloadRequest &downloadRequest);
~DownloadHandlerImpl() override;
void cancel() override;
@ -61,7 +61,9 @@ private:
static QString errorCodeToString(QNetworkReply::NetworkError status);
Net::DownloadManager *m_manager = nullptr;
QNetworkReply *m_reply = nullptr;
const Net::DownloadRequest m_downloadRequest;
short m_redirectionCount = 0;
Net::DownloadResult m_result;
};