| Index: net/socket/ssl_client_socket_openssl.cc
|
| diff --git a/net/socket/ssl_client_socket_openssl.cc b/net/socket/ssl_client_socket_openssl.cc
|
| index 63e7f830674a76b3a329ab376e54d464c29bbb5b..53c180e11a054ab5dec74ac86ce7c74d051934aa 100644
|
| --- a/net/socket/ssl_client_socket_openssl.cc
|
| +++ b/net/socket/ssl_client_socket_openssl.cc
|
| @@ -926,27 +926,7 @@ int SSLClientSocketOpenSSL::DoHandshake() {
|
| }
|
| }
|
|
|
| - if (client_auth_cert_needed_) {
|
| - // TODO(vadimt): Remove ScopedTracker below once crbug.com/424386 is fixed.
|
| - tracked_objects::ScopedTracker tracking_profile2(
|
| - FROM_HERE_WITH_EXPLICIT_FUNCTION(
|
| - "424386 SSLClientSocketOpenSSL::DoHandshake2"));
|
| -
|
| - net_error = ERR_SSL_CLIENT_AUTH_CERT_NEEDED;
|
| - // If the handshake already succeeded (because the server requests but
|
| - // doesn't require a client cert), we need to invalidate the SSL session
|
| - // so that we won't try to resume the non-client-authenticated session in
|
| - // the next handshake. This will cause the server to ask for a client
|
| - // cert again.
|
| - if (rv == 1) {
|
| - // Remove from session cache but don't clear this connection.
|
| - SSL_SESSION* session = SSL_get_session(ssl_);
|
| - if (session) {
|
| - int rv = SSL_CTX_remove_session(SSL_get_SSL_CTX(ssl_), session);
|
| - LOG_IF(WARNING, !rv) << "Couldn't invalidate SSL session: " << session;
|
| - }
|
| - }
|
| - } else if (rv == 1) {
|
| + if (rv == 1) {
|
| // TODO(vadimt): Remove ScopedTracker below once crbug.com/424386 is fixed.
|
| tracked_objects::ScopedTracker tracking_profile3(
|
| FROM_HERE_WITH_EXPLICIT_FUNCTION(
|
| @@ -1004,6 +984,9 @@ int SSLClientSocketOpenSSL::DoHandshake() {
|
| FROM_HERE_WITH_EXPLICIT_FUNCTION(
|
| "424386 SSLClientSocketOpenSSL::DoHandshake4"));
|
|
|
| + if (client_auth_cert_needed_)
|
| + return ERR_SSL_CLIENT_AUTH_CERT_NEEDED;
|
| +
|
| int ssl_error = SSL_get_error(ssl_, rv);
|
|
|
| if (ssl_error == SSL_ERROR_WANT_CHANNEL_ID_LOOKUP) {
|
|
|