Index: net/base/ssl_client_socket_nss.h |
=================================================================== |
--- net/base/ssl_client_socket_nss.h (revision 12708) |
+++ net/base/ssl_client_socket_nss.h (working copy) |
@@ -17,6 +17,8 @@ |
namespace net { |
+class X509Certificate; |
+ |
// An SSL client socket implemented with Mozilla NSS. |
class SSLClientSocketNSS : public SSLClientSocket { |
public: |
@@ -34,7 +36,6 @@ |
// ClientSocket methods: |
virtual int Connect(CompletionCallback* callback); |
- virtual int ReconnectIgnoringLastError(CompletionCallback* callback); |
virtual void Disconnect(); |
virtual bool IsConnected() const; |
virtual bool IsConnectedAndIdle() const; |
@@ -44,6 +45,8 @@ |
virtual int Write(const char* buf, int buf_len, CompletionCallback* callback); |
private: |
+ void InvalidateSessionIfBadCertificate(); |
+ X509Certificate* UpdateServerCert(); |
void DoCallback(int result); |
void OnIOComplete(int result); |
@@ -59,7 +62,12 @@ |
void BufferSendComplete(int result); |
void BufferRecvComplete(int result); |
- // nss calls this on error. We pass 'this' as the first argument. |
+ // NSS calls this when checking certificates. We pass 'this' as the first |
+ // argument. |
+ static SECStatus OwnAuthCertHandler(void* arg, PRFileDesc* socket, |
+ PRBool checksig, PRBool is_server); |
+ |
+ // NSS calls this on error. We pass 'this' as the first argument. |
static SECStatus OwnBadCertHandler(void* arg, PRFileDesc* socket); |
CompletionCallbackImpl<SSLClientSocketNSS> buffer_send_callback_; |
@@ -81,6 +89,9 @@ |
// Set when handshake finishes. Value is net error code, see net_errors.h |
int server_cert_error_; |
+ // Set during handshake. |
+ scoped_refptr<X509Certificate> server_cert_; |
+ |
bool completed_handshake_; |
enum State { |