diff options
author | Andrei Karas <akaras@inbox.ru> | 2017-09-18 02:20:13 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2017-09-18 02:20:13 +0300 |
commit | c55d293a56855842884f1f526834bf1884f36043 (patch) | |
tree | a20805bee7ddc7f396cb0fe9edd5ff999ea720dc | |
parent | 54e733a59cdcb8c0682587122a958e19669c87a3 (diff) | |
download | plus-c55d293a56855842884f1f526834bf1884f36043.tar.gz plus-c55d293a56855842884f1f526834bf1884f36043.tar.bz2 plus-c55d293a56855842884f1f526834bf1884f36043.tar.xz plus-c55d293a56855842884f1f526834bf1884f36043.zip |
Add option for enable http tunneling for downloads from http proxy.
-rw-r--r-- | src/defaults.cpp | 1 | ||||
-rw-r--r-- | src/gui/widgets/tabs/setup_misc.cpp | 4 | ||||
-rw-r--r-- | src/net/download.cpp | 9 |
3 files changed, 14 insertions, 0 deletions
diff --git a/src/defaults.cpp b/src/defaults.cpp index 5dad898dd..c485c12e5 100644 --- a/src/defaults.cpp +++ b/src/defaults.cpp @@ -296,6 +296,7 @@ void setConfigDefaults(Configuration &cfg) AddDEF("autohideChat", false); AddDEF("downloadProxy", ""); AddDEF("downloadProxyType", 0); + AddDEF("downloadProxyTunnel", false); AddDEF("blur", false); #if defined(WIN32) || defined(__APPLE__) AddDEF("centerwindow", true); diff --git a/src/gui/widgets/tabs/setup_misc.cpp b/src/gui/widgets/tabs/setup_misc.cpp index f4ce6cba0..07b4c5193 100644 --- a/src/gui/widgets/tabs/setup_misc.cpp +++ b/src/gui/widgets/tabs/setup_misc.cpp @@ -385,6 +385,10 @@ Setup_Misc::Setup_Misc(const Widget2 *const widget) : new SetupItemTextField(_("Proxy address:port"), "", "downloadProxy", this, "downloadProxyEvent"); + // TRANSLATORS: settings option + new SetupItemCheckBox(_("Tunnel through HTTP proxy"), "", + "downloadProxyTunnel", this, "downloadProxyTunnelEvent"); + // TRANSLATORS: settings group new SetupItemLabel(_("Logging"), "", this); diff --git a/src/net/download.cpp b/src/net/download.cpp index db001d1b5..8fd8bfd1e 100644 --- a/src/net/download.cpp +++ b/src/net/download.cpp @@ -511,6 +511,7 @@ void Download::addProxy(CURL *const curl) curl_easy_setopt(curl, CURLOPT_PROXY, config.getStringValue("downloadProxy").c_str()); } + switch (mode) { case 1: // direct connection @@ -518,11 +519,19 @@ void Download::addProxy(CURL *const curl) curl_easy_setopt(curl, CURLOPT_PROXY, ""); break; case 2: // HTTP +#if LIBCURL_VERSION_NUM >= 0x070300 + curl_easy_setopt(curl, CURLOPT_HTTPPROXYTUNNEL, + config.getIntValue("downloadProxyTunnel")); +#endif // LIBCURL_VERSION_NUM >= 0x070300 break; case 3: // HTTP 1.0 #if LIBCURL_VERSION_NUM >= 0x071304 curl_easy_setopt(curl, CURLOPT_PROXYTYPE, CURLPROXY_HTTP_1_0); #endif // LIBCURL_VERSION_NUM >= 0x071304 +#if LIBCURL_VERSION_NUM >= 0x070300 + curl_easy_setopt(curl, CURLOPT_HTTPPROXYTUNNEL, + config.getIntValue("downloadProxyTunnel")); +#endif // LIBCURL_VERSION_NUM >= 0x070300 break; case 4: // SOCKS4 #if LIBCURL_VERSION_NUM >= 0x070a00 |