diff options
| author | Phil Christensen <philc@microsoft.com> | 2018-12-04 15:18:45 -0800 |
|---|---|---|
| committer | Phil Christensen <philc@microsoft.com> | 2018-12-04 15:18:45 -0800 |
| commit | 6c1dd867ba2ef0f82a8a8396654f4d0035e53f49 (patch) | |
| tree | af76de7aba9722b303f209a7ab7594d4d0b3b0d9 /toolsrc/src | |
| parent | 1225d80d11124aaa0be7f437772c1b3b9db5efc1 (diff) | |
| parent | 8f6e2303f5d0fc80236888d7628ba291b5157141 (diff) | |
| download | vcpkg-6c1dd867ba2ef0f82a8a8396654f4d0035e53f49.tar.gz vcpkg-6c1dd867ba2ef0f82a8a8396654f4d0035e53f49.zip | |
Merge branch 'master' of https://github.com/microsoft/vcpkg into dev/philc/4850
Diffstat (limited to 'toolsrc/src')
| -rw-r--r-- | toolsrc/src/vcpkg/base/downloads.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/toolsrc/src/vcpkg/base/downloads.cpp b/toolsrc/src/vcpkg/base/downloads.cpp index fad3ff119..571562244 100644 --- a/toolsrc/src/vcpkg/base/downloads.cpp +++ b/toolsrc/src/vcpkg/base/downloads.cpp @@ -42,6 +42,28 @@ namespace vcpkg::Downloads 0); Checks::check_exit(VCPKG_LINE_INFO, hSession, "WinHttpOpen() failed: %d", GetLastError()); + // Win7 IE Proxy fallback + if (IsWindows7OrGreater() && !IsWindows8Point1OrGreater()) { + // First check if any proxy has been found automatically + WINHTTP_PROXY_INFO proxyInfo;
+ DWORD proxyInfoSize = sizeof(WINHTTP_PROXY_INFO);
+ auto noProxyFound =
+ !WinHttpQueryOption(hSession, WINHTTP_OPTION_PROXY, &proxyInfo, &proxyInfoSize)
+ || proxyInfo.dwAccessType == WINHTTP_ACCESS_TYPE_NO_PROXY;
+
+ // If no proxy was found automatically, use IE's proxy settings, if any
+ if (noProxyFound) { + WINHTTP_CURRENT_USER_IE_PROXY_CONFIG ieProxy; + if (WinHttpGetIEProxyConfigForCurrentUser(&ieProxy) && ieProxy.lpszProxy != nullptr) { + WINHTTP_PROXY_INFO proxy; + proxy.dwAccessType = WINHTTP_ACCESS_TYPE_NAMED_PROXY; + proxy.lpszProxy = ieProxy.lpszProxy; + proxy.lpszProxyBypass = ieProxy.lpszProxyBypass; + WinHttpSetOption(hSession, WINHTTP_OPTION_PROXY, &proxy, sizeof(proxy)); + } + } + } + // Use Windows 10 defaults on Windows 7 DWORD secure_protocols(WINHTTP_FLAG_SECURE_PROTOCOL_SSL3 | WINHTTP_FLAG_SECURE_PROTOCOL_TLS1 | WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_1 | WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_2); |
