Commit 4c8346f5 authored by wtc@chromium.org's avatar wtc@chromium.org

SSLClientSocketNSS::ClearSessionCache should initialize

NSS implicitly before calling the NSS function
SSL_ClearSessionCache.

Remove the stale comment that
SSLClientSocketNSS::ClearSessionCache is only for tests.

R=mattm@chromium.org
BUG=105431
TEST=net_unittests --gtest_filter=SSLClientSocketNSSTest.ClearSessionCache

Review URL: http://codereview.chromium.org/8816002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@113125 0039d316-1c4b-4281-b951-d872f2087c98
parent 79ee6539
...@@ -1138,8 +1138,9 @@ ...@@ -1138,8 +1138,9 @@
'socket/socks5_client_socket_unittest.cc', 'socket/socks5_client_socket_unittest.cc',
'socket/socks_client_socket_pool_unittest.cc', 'socket/socks_client_socket_pool_unittest.cc',
'socket/socks_client_socket_unittest.cc', 'socket/socks_client_socket_unittest.cc',
'socket/ssl_client_socket_unittest.cc', 'socket/ssl_client_socket_nss_unittest.cc',
'socket/ssl_client_socket_pool_unittest.cc', 'socket/ssl_client_socket_pool_unittest.cc',
'socket/ssl_client_socket_unittest.cc',
'socket/ssl_server_socket_unittest.cc', 'socket/ssl_server_socket_unittest.cc',
'socket/tcp_client_socket_unittest.cc', 'socket/tcp_client_socket_unittest.cc',
'socket/tcp_server_socket_unittest.cc', 'socket/tcp_server_socket_unittest.cc',
...@@ -1233,6 +1234,7 @@ ...@@ -1233,6 +1234,7 @@
'base/x509_util_nss_unittest.cc', 'base/x509_util_nss_unittest.cc',
'base/cert_database_nss_unittest.cc', 'base/cert_database_nss_unittest.cc',
'base/dnssec_unittest.cc', 'base/dnssec_unittest.cc',
'socket/ssl_client_socket_nss_unittest.cc',
], ],
}, { # else !use_openssl: remove the unneeded files }, { # else !use_openssl: remove the unneeded files
'sources!': [ 'sources!': [
......
...@@ -483,6 +483,12 @@ SSLClientSocketNSS::~SSLClientSocketNSS() { ...@@ -483,6 +483,12 @@ SSLClientSocketNSS::~SSLClientSocketNSS() {
// static // static
void SSLClientSocketNSS::ClearSessionCache() { void SSLClientSocketNSS::ClearSessionCache() {
// Initialize the NSS SSL library in a threadsafe way. This also
// initializes the NSS base library.
EnsureNSSSSLInit();
if (!NSS_IsInitialized())
return;
SSL_ClearSessionCache(); SSL_ClearSessionCache();
} }
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#include "net/base/cert_verify_result.h" #include "net/base/cert_verify_result.h"
#include "net/base/completion_callback.h" #include "net/base/completion_callback.h"
#include "net/base/host_port_pair.h" #include "net/base/host_port_pair.h"
#include "net/base/net_export.h"
#include "net/base/net_log.h" #include "net/base/net_log.h"
#include "net/base/nss_memio.h" #include "net/base/nss_memio.h"
#include "net/base/origin_bound_cert_service.h" #include "net/base/origin_bound_cert_service.h"
...@@ -56,8 +57,7 @@ class SSLClientSocketNSS : public SSLClientSocket { ...@@ -56,8 +57,7 @@ class SSLClientSocketNSS : public SSLClientSocket {
const SSLClientSocketContext& context); const SSLClientSocketContext& context);
virtual ~SSLClientSocketNSS(); virtual ~SSLClientSocketNSS();
// For tests NET_EXPORT_PRIVATE static void ClearSessionCache();
static void ClearSessionCache();
// SSLClientSocket methods: // SSLClientSocket methods:
virtual void GetSSLInfo(SSLInfo* ssl_info) OVERRIDE; virtual void GetSSLInfo(SSLInfo* ssl_info) OVERRIDE;
......
// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "net/socket/ssl_client_socket_nss.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace net {
// Verifies that SSLClientSocketNSS::ClearSessionCache can be called without
// explicit NSS initialization.
TEST(SSLClientSocketNSSTest, ClearSessionCache) {
SSLClientSocketNSS::ClearSessionCache();
}
} // namespace net
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment