From 9af95b32433f2227c3d62b70dc7740a5fa0b81cf Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Mon, 11 Jun 2012 16:14:45 +0200 Subject: [PATCH] urlmon: Use error dialog for ERROR_INTERNET_SEC_CERT_REV_FAILED error if IHttpSecurity returns S_FALSE. --- dlls/urlmon/http.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/dlls/urlmon/http.c b/dlls/urlmon/http.c index d5f2b33780f..c67d36e8b59 100644 --- a/dlls/urlmon/http.c +++ b/dlls/urlmon/http.c @@ -129,6 +129,8 @@ static HRESULT handle_http_error(HttpProtocol *This, DWORD error) DWORD res; HRESULT hres; + TRACE("(%p %u)\n", This, error); + switch(error) { case ERROR_INTERNET_SEC_CERT_DATE_INVALID: case ERROR_INTERNET_SEC_CERT_CN_INVALID: @@ -162,6 +164,8 @@ static HRESULT handle_http_error(HttpProtocol *This, DWORD error) hres = IHttpSecurity_OnSecurityProblem(http_security, error); IHttpSecurity_Release(http_security); + TRACE("OnSecurityProblem returned %08x\n", hres); + if(hres != S_FALSE) { BOOL res = FALSE; @@ -195,15 +199,13 @@ static HRESULT handle_http_error(HttpProtocol *This, DWORD error) switch(error) { case ERROR_INTERNET_SEC_CERT_REV_FAILED: - if(hres == S_FALSE) { - hres = internet_error_to_hres(error); - }else { + if(hres != S_FALSE) { /* Silently ignore the error. We will get more detailed error from wininet anyway. */ set_security_flag(This, SECURITY_FLAG_IGNORE_REVOCATION); hres = RPC_E_RETRY; + break; } - break; - + /* fallthrough */ default: hres = IServiceProvider_QueryService(serv_prov, &IID_IWindowForBindingUI, &IID_IWindowForBindingUI, (void**)&wfb_ui); if(SUCCEEDED(hres)) {