diff options
-rw-r--r-- | Changelog | 1 | ||||
-rw-r--r-- | src/libs/installer/packagemanagerproxyfactory.cpp | 14 |
2 files changed, 14 insertions, 1 deletions
@@ -1,6 +1,7 @@ 2.0.2 - Fix .dat file that gets deleted after multiple component changes on Windows. - Fix maintenance tool upgrade on OS X. +- Fix handling of system proxy with credentials. (QTBUG-46547) - Unify selection of language for translations. (QTIFW-390) - Fix return value of component.installAction() when updating. (QTIFW-727) - Documentation updates. 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)) |