Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(623)

Unified Diff: net/socket/ssl_client_socket_mac.h

Issue 266078: Make SSLClientSocketMac full-duplex (Closed)
Patch Set: cleanup OnTransportWriteComplete Created 11 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | net/socket/ssl_client_socket_mac.cc » ('j') | net/socket/ssl_client_socket_mac.cc » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/socket/ssl_client_socket_mac.h
diff --git a/net/socket/ssl_client_socket_mac.h b/net/socket/ssl_client_socket_mac.h
index 89e2ed496fe4b1643dd91a5b3110be5bd96737a8..06bbdb5809896b0e11cc0f03a1732c5da63c62ba 100644
--- a/net/socket/ssl_client_socket_mac.h
+++ b/net/socket/ssl_client_socket_mac.h
@@ -49,18 +49,21 @@ class SSLClientSocketMac : public SSLClientSocket {
virtual bool SetSendBufferSize(int32 size);
private:
- void DoCallback(int result);
- void OnIOComplete(int result);
+ void DoConnectCallback(int result);
+ void DoReadCallback(int result);
+ void DoWriteCallback(int result);
+ void OnHandshakeIOComplete(int result);
+ void OnTransportReadComplete(int result);
+ void OnTransportWriteComplete(int result);
+
+ int DoHandshakeLoop(int last_io_result);
- int DoLoop(int last_io_result);
int DoPayloadRead();
int DoPayloadWrite();
int DoHandshakeStart();
int DoVerifyCert();
int DoVerifyCertComplete(int result);
int DoHandshakeFinish();
- int DoReadComplete(int result);
- void OnWriteComplete(int result);
static OSStatus SSLReadCallback(SSLConnectionRef connection,
void* data,
@@ -69,31 +72,34 @@ class SSLClientSocketMac : public SSLClientSocket {
const void* data,
size_t* data_length);
- CompletionCallbackImpl<SSLClientSocketMac> io_callback_;
- CompletionCallbackImpl<SSLClientSocketMac> write_callback_;
+ CompletionCallbackImpl<SSLClientSocketMac> handshake_io_callback_;
+ CompletionCallbackImpl<SSLClientSocketMac> transport_read_callback_;
+ CompletionCallbackImpl<SSLClientSocketMac> transport_write_callback_;
scoped_ptr<ClientSocket> transport_;
std::string hostname_;
SSLConfig ssl_config_;
- CompletionCallback* user_callback_;
+ CompletionCallback* user_connect_callback_;
+ CompletionCallback* user_read_callback_;
+ CompletionCallback* user_write_callback_;
+
+ // Used by Read function.
+ scoped_refptr<IOBuffer> user_read_buf_;
+ int user_read_buf_len_;
- // Used by both Read and Write functions.
- scoped_refptr<IOBuffer> user_buf_;
- int user_buf_len_;
+ // Used by Write function.
+ scoped_refptr<IOBuffer> user_write_buf_;
+ int user_write_buf_len_;
enum State {
STATE_NONE,
- STATE_PAYLOAD_READ,
- STATE_PAYLOAD_WRITE,
STATE_HANDSHAKE_START,
STATE_VERIFY_CERT,
STATE_VERIFY_CERT_COMPLETE,
STATE_HANDSHAKE_FINISH,
- STATE_READ_COMPLETE,
};
- State next_state_;
- State next_io_state_;
+ State next_handshake_state_;
scoped_refptr<X509Certificate> server_cert_;
std::vector<scoped_refptr<X509Certificate> > intermediate_certs_;
« no previous file with comments | « no previous file | net/socket/ssl_client_socket_mac.cc » ('j') | net/socket/ssl_client_socket_mac.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698