Module: wine Branch: master Commit: 8dde5c5168dcbf7f8166a73507c60aff4a667de6 URL: http://source.winehq.org/git/wine.git/?a=commit;h=8dde5c5168dcbf7f8166a73507...
Author: Piotr Caban piotr@codeweavers.com Date: Wed May 19 01:50:46 2010 +0200
wininet: Combine certificate errors in HTTP_OpenConnection.
---
dlls/wininet/http.c | 11 +++++++++++ dlls/wininet/netconnection.c | 4 +++- 2 files changed, 14 insertions(+), 1 deletions(-)
diff --git a/dlls/wininet/http.c b/dlls/wininet/http.c index 9f96f8a..bd2e574 100644 --- a/dlls/wininet/http.c +++ b/dlls/wininet/http.c @@ -4381,6 +4381,17 @@ static DWORD HTTP_OpenConnection(http_request_t *lpwhr) if(res != ERROR_SUCCESS) { WARN("Couldn't connect securely to host\n"); + + if((lpwhr->hdr.ErrorMask&INTERNET_ERROR_MASK_COMBINED_SEC_CERT) && ( + res == ERROR_INTERNET_SEC_CERT_DATE_INVALID + || res == ERROR_INTERNET_INVALID_CA + || res == ERROR_INTERNET_SEC_CERT_NO_REV + || res == ERROR_INTERNET_SEC_CERT_REV_FAILED + || res == ERROR_INTERNET_SEC_CERT_REVOKED + || res == ERROR_INTERNET_SEC_INVALID_CERT + || res == ERROR_INTERNET_SEC_CERT_CN_INVALID)) + res = ERROR_INTERNET_SEC_CERT_ERRORS; + HTTPREQ_CloseConnection(&lpwhr->hdr); goto lend; } diff --git a/dlls/wininet/netconnection.c b/dlls/wininet/netconnection.c index bb89517..5aa647a 100644 --- a/dlls/wininet/netconnection.c +++ b/dlls/wininet/netconnection.c @@ -331,7 +331,9 @@ static int netconn_secure_verify(int preverify_ok, X509_STORE_CTX *ctx) CertFreeCertificateContext(endCert); CertCloseStore(store, 0); } - } + } else + pSSL_set_ex_data(ssl, error_idx, (void *)ERROR_INTERNET_SEC_CERT_ERRORS); + return ret; }