diff options
author | Kai Koehne <kai.koehne@theqtcompany.com> | 2015-07-22 12:17:20 +0200 |
---|---|---|
committer | Kai Koehne <kai.koehne@theqtcompany.com> | 2015-08-05 11:37:47 +0000 |
commit | 79a9d2e7d6675f3216c2f3299b142599df2379ad (patch) | |
tree | 647f65e03f9d553a39a63990a453486aaaf57535 /src/libs | |
parent | d343cd20410ecb2741c85877c8203579dc7c227d (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.cpp | 14 |
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)) |