| Index: net/socket/ssl_client_socket_openssl.h
|
| diff --git a/net/socket/ssl_client_socket_openssl.h b/net/socket/ssl_client_socket_openssl.h
|
| index 5d70c0523fabe0230b2361f7418688f1215fe0df..fbda9f58e879b8f909e15f9166516fc178c1d1fc 100644
|
| --- a/net/socket/ssl_client_socket_openssl.h
|
| +++ b/net/socket/ssl_client_socket_openssl.h
|
| @@ -31,6 +31,10 @@ typedef struct x509_st X509;
|
| // <openssl/ossl_type.h>
|
| typedef struct x509_store_ctx_st X509_STORE_CTX;
|
|
|
| +namespace crypto {
|
| +class OpenSSLErrStackTracer;
|
| +}
|
| +
|
| namespace net {
|
|
|
| class CertVerifier;
|
| @@ -120,8 +124,8 @@ class SSLClientSocketOpenSSL : public SSLClientSocket {
|
| void OnRecvComplete(int result);
|
|
|
| int DoHandshakeLoop(int last_io_result);
|
| - int DoReadLoop(int result);
|
| - int DoWriteLoop(int result);
|
| + int DoReadLoop();
|
| + int DoWriteLoop();
|
| int DoPayloadRead();
|
| int DoPayloadWrite();
|
|
|
| @@ -132,6 +136,9 @@ class SSLClientSocketOpenSSL : public SSLClientSocket {
|
| void TransportWriteComplete(int result);
|
| int TransportReadComplete(int result);
|
|
|
| + int HandleOpenSSLError(int ssl_error,
|
| + const crypto::OpenSSLErrStackTracer& tracer);
|
| +
|
| // Callback from the SSL layer that indicates the remote server is requesting
|
| // a certificate for this client.
|
| int ClientCertRequestCallback(SSL* ssl, X509** x509, EVP_PKEY** pkey);
|
| @@ -149,9 +156,20 @@ class SSLClientSocketOpenSSL : public SSLClientSocket {
|
| int SelectNextProtoCallback(unsigned char** out, unsigned char* outlen,
|
| const unsigned char* in, unsigned int inlen);
|
|
|
| + // Callback from the SSL layer when an operation is performed on
|
| + // |transport_bio_|.
|
| + long BIOCallback(BIO *bio,
|
| + int cmd,
|
| + const char *argp, int argi, long argl,
|
| + long retvalue);
|
| +
|
| + static long BIOCallbackThunk(BIO *bio,
|
| + int cmd,
|
| + const char *argp, int argi, long argl,
|
| + long retvalue);
|
| +
|
| bool transport_send_busy_;
|
| bool transport_recv_busy_;
|
| - bool transport_recv_eof_;
|
|
|
| scoped_refptr<DrainableIOBuffer> send_buffer_;
|
| scoped_refptr<IOBuffer> recv_buffer_;
|
| @@ -178,8 +196,14 @@ class SSLClientSocketOpenSSL : public SSLClientSocket {
|
| // indicates an error.
|
| int pending_read_error_;
|
|
|
| - // Used by TransportWriteComplete() and TransportReadComplete() to signify an
|
| - // error writing to the transport socket. A value of OK indicates no error.
|
| + // Used by TransportReadComplete() to signify an error or EOF reading from the
|
| + // transport socket. A value of ERR_IO_PENDING indicates the transport is
|
| + // still readable.
|
| + int transport_read_error_;
|
| +
|
| + // Used by TransportWriteComplete() to signify an error writing to the
|
| + // transport socket. A value of ERR_IO_PENDING indicates the transport is
|
| + // still writeable.
|
| int transport_write_error_;
|
|
|
| // Set when handshake finishes.
|
|
|