summaryrefslogtreecommitdiffstats
path: root/src/libs
diff options
context:
space:
mode:
authorKai Koehne <kai.koehne@theqtcompany.com>2015-07-22 12:17:20 +0200
committerKai Koehne <kai.koehne@theqtcompany.com>2015-08-05 11:37:47 +0000
commit79a9d2e7d6675f3216c2f3299b142599df2379ad (patch)
tree647f65e03f9d553a39a63990a453486aaaf57535 /src/libs
parentd343cd20410ecb2741c85877c8203579dc7c227d (diff)
Fix usage of system proxy with credentials
So far we've been using the entered credentials only for custom proxies on Windows and OS X. If one selected 'System Proxy' we asked or the credentials, but tried again without setting them. This fixes a regression introduced in 2.0, where we started to interactively ask for credentials. Task-number: QTBUG-46547 Change-Id: If059a9c68a0976db0453abdc795d9546c4b3aa4a Reviewed-by: Niels Weber <niels.weber@theqtcompany.com> Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
Diffstat (limited to 'src/libs')
-rw-r--r--src/libs/installer/packagemanagerproxyfactory.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/libs/installer/packagemanagerproxyfactory.cpp b/src/libs/installer/packagemanagerproxyfactory.cpp
index 15e18c889..5c56988af 100644
--- a/src/libs/installer/packagemanagerproxyfactory.cpp
+++ b/src/libs/installer/packagemanagerproxyfactory.cpp
@@ -75,7 +75,19 @@ QList<QNetworkProxy> PackageManagerProxyFactory::queryProxy(const QNetworkProxyQ
proxyUrl.userName(), proxyUrl.password());
}
#endif
- return QNetworkProxyFactory::systemProxyForQuery(query);
+ QList<QNetworkProxy> systemProxies = systemProxyForQuery(query);
+
+ auto proxyIter = systemProxies.begin();
+ for (; proxyIter != systemProxies.end(); ++proxyIter) {
+ QNetworkProxy &proxy = *proxyIter;
+ auto p = std::find_if(m_proxyCredentials.constBegin(), m_proxyCredentials.constEnd(),
+ FindProxyCredential(proxy.hostName(), proxy.port()));
+ if (p != m_proxyCredentials.constEnd()) {
+ proxy.setUser(p->user);
+ proxy.setPassword(p->password);
+ }
+ }
+ return systemProxies;
}
if ((settings.proxyType() == Settings::NoProxy))