summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorwillchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-29 00:06:16 +0000
committerwillchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-29 00:06:16 +0000
commit7fcb858abdbc3c5ed1614e587e8630f5c4c97c35 (patch)
treea449c766037016b5c56034cfb4625353b1eaf9db /net
parent4cb07547b8ac9357f6070513ad8ac18d8c38b42e (diff)
downloadchromium_src-7fcb858abdbc3c5ed1614e587e8630f5c4c97c35.zip
chromium_src-7fcb858abdbc3c5ed1614e587e8630f5c4c97c35.tar.gz
chromium_src-7fcb858abdbc3c5ed1614e587e8630f5c4c97c35.tar.bz2
Map errSSLPeerHandshakeFail to ERR_SSL_PROTOCOL_ERROR.
BUG=http://crbug.com/22623 TEST=Browse to https://www.bankalbilad.com.sa/retail/logon.do. It should fallback from TLS to SSL and thus properly display the page instead of showing an error. Review URL: http://codereview.chromium.org/347011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30406 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net')
-rw-r--r--net/socket/ssl_client_socket_mac.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/socket/ssl_client_socket_mac.cc b/net/socket/ssl_client_socket_mac.cc
index 46ecf5f..5e1cf76 100644
--- a/net/socket/ssl_client_socket_mac.cc
+++ b/net/socket/ssl_client_socket_mac.cc
@@ -103,6 +103,8 @@ enum {
typedef OSStatus (*SSLSetSessionOptionFuncPtr)(SSLContextRef,
SSLSetSessionOptionType,
Boolean);
+// For an explanation of the Mac OS X error codes, please refer to:
+// http://developer.apple.com/mac/library/documentation/Security/Reference/secureTransportRef/Reference/reference.html
int NetErrorFromOSStatus(OSStatus status) {
switch (status) {
case errSSLWouldBlock:
@@ -122,6 +124,7 @@ int NetErrorFromOSStatus(OSStatus status) {
case errSSLIllegalParam: // Received an illegal_parameter alert.
case errSSLPeerUnexpectedMsg: // Received an unexpected_message alert.
case errSSLProtocol:
+ case errSSLPeerHandshakeFail: // Received a handshake_failure alert.
return ERR_SSL_PROTOCOL_ERROR;
case errSSLHostNameMismatch:
return ERR_CERT_COMMON_NAME_INVALID;