diff --git a/Changelog b/Changelog index 804ab3bcc..fe0f9773d 100644 --- a/Changelog +++ b/Changelog @@ -11,6 +11,7 @@ - FEATURE: Improved a lot the torrent creation module - FEATURE: Allow to set upload/download limit per torrent (right click) - FEATURE: Ask for exit confirmation only if download list is not empty + - FEATURE: Proxy is now used for tracker / web seeds / peers connections - FEATURE: Better systems integration (buttons, dialogs...) - COSMETIC: Redesigned torrent properties a little - COSMETIC: Redesigned options a little diff --git a/TODO b/TODO index ae5adab81..8397bd52e 100644 --- a/TODO +++ b/TODO @@ -46,4 +46,5 @@ - Improve ratio display / calculation / saving / per torrent... - Sorting in Download Status column should be smarter than just an alphabetical sort - Windows port : http://www.peerweb.nl/qbittorrent/experimentalbuild/testing.zip -- Improve search plugin update (make it automatic, write version/changelog in another file to limit brandwidth usage). Allow to disable this feature in program preferences. \ No newline at end of file +- Improve search plugin update (make it automatic, write version/changelog in another file to limit brandwidth usage). Allow to disable this feature in program preferences. +- Support Sock5 proxies \ No newline at end of file diff --git a/src/GUI.cpp b/src/GUI.cpp index 0b1213f46..30d1b84d3 100644 --- a/src/GUI.cpp +++ b/src/GUI.cpp @@ -1121,7 +1121,8 @@ void GUI::configureSession(bool deleteOptions){ qDebug("Configuring session"); QPair limits; unsigned short old_listenPort, new_listenPort; - session_settings proxySettings; + proxy_settings proxySettings; + session_settings sessionSettings; // Configure session regarding options BTSession.setDefaultSavePath(options->getSavePath()); old_listenPort = BTSession.getListenPort(); @@ -1190,15 +1191,18 @@ void GUI::configureSession(bool deleteOptions){ } // Apply Proxy settings if(options->isProxyEnabled()){ - proxySettings.proxy_ip = options->getProxyIp().toStdString(); - proxySettings.proxy_port = options->getProxyPort(); + proxySettings.hostname = options->getProxyIp().toStdString(); + proxySettings.port = options->getProxyPort(); + proxySettings.type = proxy_settings::http; if(options->isProxyAuthEnabled()){ - proxySettings.proxy_login = options->getProxyUsername().toStdString(); - proxySettings.proxy_password = options->getProxyPassword().toStdString(); + proxySettings.username = options->getProxyUsername().toStdString(); + proxySettings.password = options->getProxyPassword().toStdString(); + proxySettings.type = proxy_settings::http_pw; } } - proxySettings.user_agent = "qBittorrent "VERSION; - BTSession.setSessionSettings(proxySettings); + BTSession.setProxySettings(proxySettings); + sessionSettings.user_agent = "qBittorrent "VERSION; + BTSession.setSessionSettings(sessionSettings); // Scan dir stuff if(options->getScanDir().isNull()){ BTSession.disableDirectoryScanning(); diff --git a/src/bittorrent.cpp b/src/bittorrent.cpp index 97bda17ba..b0c508800 100644 --- a/src/bittorrent.cpp +++ b/src/bittorrent.cpp @@ -675,11 +675,18 @@ void bittorrent::disableIPFilter(){ s->set_ip_filter(ip_filter()); } -// Set BT session settings (proxy, user_agent) +// Set BT session settings (user_agent) void bittorrent::setSessionSettings(session_settings sessionSettings){ s->set_settings(sessionSettings); } +// Set Proxy +void bittorrent::setProxySettings(proxy_settings proxySettings){ + s->set_peer_proxy(proxySettings); + s->set_web_seed_proxy(proxySettings); + s->set_tracker_proxy(proxySettings); +} + // Read alerts sent by the bittorrent session void bittorrent::readAlerts(){ // look at session alerts and display some infos diff --git a/src/bittorrent.h b/src/bittorrent.h index 89706ab97..d739561e8 100644 --- a/src/bittorrent.h +++ b/src/bittorrent.h @@ -116,6 +116,7 @@ class bittorrent : public QObject{ void setUploadRateLimit(int rate); void setGlobalRatio(float ratio); void setDHTPort(int dht_port); + void setProxySettings(proxy_settings proxySettings); void setSessionSettings(session_settings sessionSettings); void setDefaultSavePath(const QString& savepath); #ifndef NO_UPNP