Another auto proxy tweak
This commit is contained in:
parent
b747ae5bdf
commit
f5fc9fa11f
|
@ -146,8 +146,9 @@ bool KIPLATFORM::ENV::GetSystemProxyConfig( const wxString& aURL, PROXY_CONFIG&
|
||||||
autoProxyOptions.lpszAutoConfigUrl = ieProxyConfig.lpszAutoConfigUrl;
|
autoProxyOptions.lpszAutoConfigUrl = ieProxyConfig.lpszAutoConfigUrl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else if( GetLastError() == ERROR_FILE_NOT_FOUND )
|
||||||
{
|
{
|
||||||
|
// this is the only error code where we want to continue attempting to find a proxy
|
||||||
autoProxyDetect = true;
|
autoProxyDetect = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -171,11 +172,22 @@ bool KIPLATFORM::ENV::GetSystemProxyConfig( const wxString& aURL, PROXY_CONFIG&
|
||||||
WINHTTP_AUTO_DETECT_TYPE_DHCP | WINHTTP_AUTO_DETECT_TYPE_DNS_A;
|
WINHTTP_AUTO_DETECT_TYPE_DHCP | WINHTTP_AUTO_DETECT_TYPE_DNS_A;
|
||||||
}
|
}
|
||||||
|
|
||||||
autoProxyOptions.fAutoLogonIfChallenged = TRUE;
|
// dont do auto logon at first, this allows windows to use an cache
|
||||||
|
// per https://docs.microsoft.com/en-us/windows/win32/winhttp/autoproxy-cache
|
||||||
|
autoProxyOptions.fAutoLogonIfChallenged = FALSE;
|
||||||
|
|
||||||
autoProxyDetect = WinHttpGetProxyForUrl( proxyResolveSession, aURL.c_str(),
|
autoProxyDetect = WinHttpGetProxyForUrl( proxyResolveSession, aURL.c_str(),
|
||||||
&autoProxyOptions, &autoProxyInfo );
|
&autoProxyOptions, &autoProxyInfo );
|
||||||
|
|
||||||
|
if( !autoProxyDetect && GetLastError() == ERROR_WINHTTP_LOGIN_FAILURE )
|
||||||
|
{
|
||||||
|
autoProxyOptions.fAutoLogonIfChallenged = TRUE;
|
||||||
|
|
||||||
|
// try again with auto login now
|
||||||
|
autoProxyDetect = WinHttpGetProxyForUrl( proxyResolveSession, aURL.c_str(),
|
||||||
|
&autoProxyOptions, &autoProxyInfo );
|
||||||
|
}
|
||||||
|
|
||||||
WinHttpCloseHandle( proxyResolveSession );
|
WinHttpCloseHandle( proxyResolveSession );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue