diff --git a/src/downloadThread.cpp b/src/downloadThread.cpp index 925006ee7..5ca3dd752 100644 --- a/src/downloadThread.cpp +++ b/src/downloadThread.cpp @@ -22,6 +22,7 @@ #include "downloadThread.h" #include #include +#include QString subDownloadThread::errorCodeToString(int status) { switch(status){ @@ -52,6 +53,18 @@ QString subDownloadThread::errorCodeToString(int status) { subDownloadThread::subDownloadThread(QObject *parent, QString url) : QThread(parent), url(url), abort(false){ url_stream = new ost::URLStream(); + // Proxy support + QSettings settings("qBittorrent", "qBittorrent"); + int intValue = settings.value(QString::fromUtf8("[Preferences/Connection/ProxyType"), 0).toInt(); + if(intValue > 0) { + // Proxy enabled + url_stream->setProxy(settings.value(QString::fromUtf8("Preferences/Connection/Proxy/IP"), "0.0.0.0").toString().toUtf8().data(), settings.value(QString::fromUtf8("Preferences/Connection/Proxy/Port"), 8080).toInt()); + if(settings.value(QString::fromUtf8("Preferences/Connection/Proxy/Authentication"), false).toBool()) { + // Authentication required + url_stream->setProxyUser(settings.value(QString::fromUtf8("Preferences/Connection/Proxy/Username"), QString()).toString().toUtf8().data()); + url_stream->setProxyPassword(settings.value(QString::fromUtf8("Preferences/Connection/Proxy/Password"), QString()).toString().toUtf8().data()); + } + } } subDownloadThread::~subDownloadThread(){ diff --git a/src/downloadThread.h b/src/downloadThread.h index baaf36975..4c5d952f1 100644 --- a/src/downloadThread.h +++ b/src/downloadThread.h @@ -34,6 +34,13 @@ namespace ost { class URLStream; } +typedef struct { + QString IP; + int port; + QString username; + QString password; +} tmp_proxy; + class subDownloadThread : public QThread { Q_OBJECT private: @@ -76,6 +83,7 @@ class downloadThread : public QThread { ~downloadThread(); void downloadUrl(QString url); + void setProxy(QString IP, int port, QString username, QString password); protected: void run();