| 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 764ce9ee71b91219c684c82319507783bf41c6f5..a84dbc2070a23fcdde613661d396232d97a9c11c 100644
|
| --- a/net/socket/ssl_client_socket_openssl.cc
|
| +++ b/net/socket/ssl_client_socket_openssl.cc
|
| @@ -403,6 +403,27 @@ std::string SSLClientSocketOpenSSL::GetSessionCacheKey() const {
|
| std::string result = host_and_port_.ToString();
|
| result.append("/");
|
| result.append(ssl_session_cache_shard_);
|
| +
|
| + // Shard the session cache based on maximum protocol version. This causes
|
| + // fallback connections to use a separate session cache.
|
| + result.append("/");
|
| + switch (ssl_config_.version_max) {
|
| + case SSL_PROTOCOL_VERSION_SSL3:
|
| + result.append("ssl3");
|
| + break;
|
| + case SSL_PROTOCOL_VERSION_TLS1:
|
| + result.append("tls1");
|
| + break;
|
| + case SSL_PROTOCOL_VERSION_TLS1_1:
|
| + result.append("tls1.1");
|
| + break;
|
| + case SSL_PROTOCOL_VERSION_TLS1_2:
|
| + result.append("tls1.2");
|
| + break;
|
| + default:
|
| + NOTREACHED();
|
| + }
|
| +
|
| return result;
|
| }
|
|
|
|
|