diff options
author | ellyjones <ellyjones@chromium.org> | 2015-08-18 12:22:25 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-08-18 19:22:58 +0000 |
commit | a4904a760a40d0b9856e5f6277e904b39d94dff8 (patch) | |
tree | f22a60dc39feaa53cc2604e1f8a0b7ca249c0c3f /net/proxy | |
parent | f5f4589df29346073165fe3fbefaa6fb494049c2 (diff) | |
download | chromium_src-a4904a760a40d0b9856e5f6277e904b39d94dff8.zip chromium_src-a4904a760a40d0b9856e5f6277e904b39d94dff8.tar.gz chromium_src-a4904a760a40d0b9856e5f6277e904b39d94dff8.tar.bz2 |
ProxyResolverWinHttp: translate WinHttp error codes to net error codes
BUG=488596
Review URL: https://codereview.chromium.org/1294373002
Cr-Commit-Position: refs/heads/master@{#343995}
Diffstat (limited to 'net/proxy')
-rw-r--r-- | net/proxy/proxy_resolver_winhttp.cc | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/net/proxy/proxy_resolver_winhttp.cc b/net/proxy/proxy_resolver_winhttp.cc index d52ceb2..bfdce33 100644 --- a/net/proxy/proxy_resolver_winhttp.cc +++ b/net/proxy/proxy_resolver_winhttp.cc @@ -29,6 +29,28 @@ static void FreeInfo(WINHTTP_PROXY_INFO* info) { GlobalFree(info->lpszProxyBypass); } +static Error WinHttpErrorToNetError(DWORD win_http_error) { + switch (win_http_error) { + case ERROR_WINHTTP_AUTO_PROXY_SERVICE_ERROR: + case ERROR_WINHTTP_INTERNAL_ERROR: + case ERROR_WINHTTP_INCORRECT_HANDLE_TYPE: + return ERR_FAILED; + case ERROR_WINHTTP_LOGIN_FAILURE: + return ERR_PROXY_AUTH_UNSUPPORTED; + case ERROR_WINHTTP_BAD_AUTO_PROXY_SCRIPT: + return ERR_PAC_SCRIPT_FAILED; + case ERROR_WINHTTP_INVALID_URL: + case ERROR_WINHTTP_OPERATION_CANCELLED: + case ERROR_WINHTTP_UNABLE_TO_DOWNLOAD_SCRIPT: + case ERROR_WINHTTP_UNRECOGNIZED_SCHEME: + return ERR_PAC_STATUS_NOT_OK; + case ERROR_NOT_ENOUGH_MEMORY: + return ERR_INSUFFICIENT_RESOURCES; + default: + return ERR_FAILED; + } +} + class ProxyResolverWinHttp : public ProxyResolver { public: ProxyResolverWinHttp( @@ -116,7 +138,7 @@ int ProxyResolverWinHttp::GetProxyForURL(const GURL& query_url, ERROR_WINHTTP_AUTO_PROXY_SERVICE_ERROR == error) { CloseWinHttpSession(); } - return ERR_FAILED; // TODO(darin): Bug 1189288: translate error code. + return WinHttpErrorToNetError(error); } } |