From 50ebc49d69bd01e094e88325d6986bae607d973d Mon Sep 17 00:00:00 2001 From: Roeland Jago Douma Date: Thu, 31 Jan 2019 14:14:31 +0100 Subject: [PATCH] Work around proxy issue with webview by always setting a proxy Just use the prefered http tcp socket proxy. Signed-off-by: Roeland Jago Douma --- src/gui/clientproxy.cpp | 54 +++++++++++++++++++--------------- src/gui/wizard/webviewpage.cpp | 6 ++-- 2 files changed, 34 insertions(+), 26 deletions(-) diff --git a/src/gui/clientproxy.cpp b/src/gui/clientproxy.cpp index 11d456c25..c5ea310d4 100644 --- a/src/gui/clientproxy.cpp +++ b/src/gui/clientproxy.cpp @@ -74,29 +74,37 @@ void ClientProxy::setupQtProxyFromConfig() } switch (proxyType) { - case QNetworkProxy::NoProxy: - qCInfo(lcClientProxy) << "Set proxy configuration to use NO proxy"; - QNetworkProxyFactory::setUseSystemConfiguration(false); - QNetworkProxy::setApplicationProxy(QNetworkProxy::NoProxy); - break; - case QNetworkProxy::DefaultProxy: - qCInfo(lcClientProxy) << "Set proxy configuration to use system configuration"; - QNetworkProxyFactory::setUseSystemConfiguration(true); - break; - case QNetworkProxy::Socks5Proxy: - proxy.setType(QNetworkProxy::Socks5Proxy); - qCInfo(lcClientProxy) << "Set proxy configuration to SOCKS5" << printQNetworkProxy(proxy); - QNetworkProxyFactory::setUseSystemConfiguration(false); - QNetworkProxy::setApplicationProxy(proxy); - break; - case QNetworkProxy::HttpProxy: - proxy.setType(QNetworkProxy::HttpProxy); - qCInfo(lcClientProxy) << "Set proxy configuration to HTTP" << printQNetworkProxy(proxy); - QNetworkProxyFactory::setUseSystemConfiguration(false); - QNetworkProxy::setApplicationProxy(proxy); - break; - default: - break; + case QNetworkProxy::NoProxy: + qCInfo(lcClientProxy) << "Set proxy configuration to use NO proxy"; + QNetworkProxyFactory::setUseSystemConfiguration(false); + QNetworkProxy::setApplicationProxy(QNetworkProxy::NoProxy); + break; + case QNetworkProxy::DefaultProxy: + qCInfo(lcClientProxy) << "Set proxy configuration to use the prefered system proxy for http tcp connections"; + { + QNetworkProxyQuery query; + query.setProtocolTag("http"); + query.setQueryType(QNetworkProxyQuery::TcpSocket); + auto proxies = QNetworkProxyFactory::proxyForQuery(query); + proxy = proxies.first(); + } + QNetworkProxyFactory::setUseSystemConfiguration(false); + QNetworkProxy::setApplicationProxy(proxy); + break; + case QNetworkProxy::Socks5Proxy: + proxy.setType(QNetworkProxy::Socks5Proxy); + qCInfo(lcClientProxy) << "Set proxy configuration to SOCKS5" << printQNetworkProxy(proxy); + QNetworkProxyFactory::setUseSystemConfiguration(false); + QNetworkProxy::setApplicationProxy(proxy); + break; + case QNetworkProxy::HttpProxy: + proxy.setType(QNetworkProxy::HttpProxy); + qCInfo(lcClientProxy) << "Set proxy configuration to HTTP" << printQNetworkProxy(proxy); + QNetworkProxyFactory::setUseSystemConfiguration(false); + QNetworkProxy::setApplicationProxy(proxy); + break; + default: + break; } } diff --git a/src/gui/wizard/webviewpage.cpp b/src/gui/wizard/webviewpage.cpp index f9deeb83f..8daa0f684 100644 --- a/src/gui/wizard/webviewpage.cpp +++ b/src/gui/wizard/webviewpage.cpp @@ -29,15 +29,15 @@ WebViewPage::WebViewPage(QWidget *parent) connect(_webView, &WebView::urlCatched, this, &WebViewPage::urlCatched); - _useSystemProxy = QNetworkProxyFactory::usesSystemConfiguration(); + //_useSystemProxy = QNetworkProxyFactory::usesSystemConfiguration(); } WebViewPage::~WebViewPage() { - QNetworkProxyFactory::setUseSystemConfiguration(_useSystemProxy); + //QNetworkProxyFactory::setUseSystemConfiguration(_useSystemProxy); } void WebViewPage::initializePage() { - QNetworkProxy::setApplicationProxy(QNetworkProxy::applicationProxy()); + //QNetworkProxy::setApplicationProxy(QNetworkProxy::applicationProxy()); QString url; if (_ocWizard->registration()) { -- 2.30.2