Index: net/socket/ssl_client_socket.cc |
=================================================================== |
--- net/socket/ssl_client_socket.cc (revision 75583) |
+++ net/socket/ssl_client_socket.cc (working copy) |
@@ -4,6 +4,16 @@ |
#include "net/socket/ssl_client_socket.h" |
+#if defined(OS_WIN) |
+#include "net/socket/ssl_client_socket_nss.h" |
+#elif defined(USE_OPENSSL) |
+#include "net/socket/ssl_client_socket_openssl.h" |
+#elif defined(USE_NSS) |
+#include "net/socket/ssl_client_socket_nss.h" |
+#elif defined(OS_MACOSX) |
+#include "net/socket/ssl_client_socket_nss.h" |
+#endif |
+ |
namespace net { |
SSLClientSocket::SSLClientSocket() |
@@ -59,4 +69,43 @@ |
return was_spdy_negotiated_ = negotiated; |
} |
+// Default mechanism for clearing the SSL session cache, which is |
+// to use the NSS function. |
+void DefaultClearSSLSessionCache() { |
+#if defined(OS_WIN) |
+ return SSLClientSocketNSS::ClearSessionCache(); |
+#elif defined(USE_OPENSSL) |
+ // no-op |
+#elif defined(USE_NSS) |
+ return SSLClientSocketNSS::ClearSessionCache(); |
+#elif defined(OS_MACOSX) |
+ return SSLClientSocketNSS::ClearSessionCache(); |
+#else |
+ NOTIMPLEMENTED(); |
+#endif |
+} |
+ |
+// Default mechanism for clearing the SSL session cache, which is not actually |
+// definted on mac/windows. |
+void SystemClearSSLSessionCache() { |
+#if defined(OS_WIN) |
+ // no-op |
+#elif defined(OS_MACOSX) |
+ // no-op |
+#else |
+ NOTIMPLEMENTED(); |
+#endif |
+} |
+ |
+void (*g_clear_ssl_session_cache)() = |
+ DefaultClearSSLSessionCache; |
+ |
+void SSLClientSocket::ClearSSLSessionCache() { |
+ g_clear_ssl_session_cache(); |
+} |
+ |
+void SSLClientSocket::UseSystemClearSSLSessionCache() { |
+ g_clear_ssl_session_cache = SystemClearSSLSessionCache; |
+} |
+ |
} // namespace net |