Chromium Code Reviews| Index: net/socket/ssl_client_socket_nss.cc |
| diff --git a/net/socket/ssl_client_socket_nss.cc b/net/socket/ssl_client_socket_nss.cc |
| index b631b91c0a7b9aa4385e9916d5ed05d4f269bb92..3702666778603194242f7262f33552441f26266d 100644 |
| --- a/net/socket/ssl_client_socket_nss.cc |
| +++ b/net/socket/ssl_client_socket_nss.cc |
| @@ -1904,15 +1904,18 @@ int SSLClientSocketNSS::Core::DoHandshake() { |
| // inject TCP reset packets to break the connections when they see |
| // TLS 1.1 in ClientHello or ServerHello. See http://crbug.com/130293. |
| // |
| - // Only allow ERR_CONNECTION_RESET to trigger a TLS 1.1 -> TLS 1.0 |
| - // fallback. We don't lose much in this fallback because the explicit |
| - // IV for CBC mode in TLS 1.1 is approximated by record splitting in |
| - // TLS 1.0. |
| + // Only allow ERR_CONNECTION_RESET/ABORTED to trigger a TLS 1.1 -> TLS 1.0 |
| + // fallback. We don't lose much in this fallback because the explicit IV |
| + // for CBC mode in TLS 1.1 is approximated by record splitting in TLS 1.0. |
| // |
| - // ERR_CONNECTION_RESET is a common network error, so we don't want it |
| - // to trigger a version fallback in general, especially the TLS 1.0 -> |
| + // ERR_CONNECTION_RESET/ABORTED are common network errors, so we don't want |
| + // them to trigger a version fallback in general, especially the TLS 1.0 -> |
| // SSL 3.0 fallback, which would drop TLS extensions. |
| - if (prerr == PR_CONNECT_RESET_ERROR && |
| + // |
| + // ERR_CONNECTION_ABORTED was added because we sometimes get it instead of |
| + // RESET on Windows. See crbug.com/178672. |
|
wtc
2013/03/04 23:51:27
I found one change to tcp_client_socket_win.cc in
wtc
2013/03/05 18:27:10
We can replace "sometimes" with something like "if
agl
2013/03/05 18:48:20
Done.
|
| + if ((prerr == PR_CONNECT_RESET_ERROR || |
| + prerr == PR_CONNECT_ABORTED_ERROR) && |
|
wtc
2013/03/04 20:55:49
Perhaps only allow PR_CONNECT_ABORTED_ERROR for OS
agl
2013/03/04 21:01:13
I would tend not to have different behaviours on d
|
| ssl_config_.version_max == SSL_PROTOCOL_VERSION_TLS1_1) { |
| net_error = ERR_SSL_PROTOCOL_ERROR; |
| } |