summaryrefslogtreecommitdiffstats
path: root/jingle/notifier/communicator/ssl_socket_adapter.h
diff options
context:
space:
mode:
Diffstat (limited to 'jingle/notifier/communicator/ssl_socket_adapter.h')
-rw-r--r--jingle/notifier/communicator/ssl_socket_adapter.h40
1 files changed, 22 insertions, 18 deletions
diff --git a/jingle/notifier/communicator/ssl_socket_adapter.h b/jingle/notifier/communicator/ssl_socket_adapter.h
index a97cfaa..574e135 100644
--- a/jingle/notifier/communicator/ssl_socket_adapter.h
+++ b/jingle/notifier/communicator/ssl_socket_adapter.h
@@ -19,6 +19,8 @@ namespace notifier {
class SSLSocketAdapter;
+// TODO(sergeyu): Write unittests for this code!
+
// This class provides a wrapper to libjingle's talk_base::AsyncSocket that
// implements Chromium's net::ClientSocket interface. It's used by
// SSLSocketAdapter to enable Chromium's SSL implementation to work over
@@ -53,11 +55,9 @@ class TransportSocket : public net::ClientSocket, public sigslot::has_slots<> {
private:
friend class SSLSocketAdapter;
- void OnConnectEvent(talk_base::AsyncSocket * socket);
- bool OnReadEvent(talk_base::AsyncSocket * socket);
- bool OnWriteEvent(talk_base::AsyncSocket * socket);
+ void OnReadEvent(talk_base::AsyncSocket* socket);
+ void OnWriteEvent(talk_base::AsyncSocket* socket);
- net::CompletionCallback* connect_callback_;
net::CompletionCallback* read_callback_;
net::CompletionCallback* write_callback_;
@@ -97,21 +97,23 @@ class SSLSocketAdapter : public talk_base::SSLAdapter {
private:
friend class TransportSocket;
- enum State {
- STATE_NONE,
- STATE_READ,
- STATE_READ_COMPLETE,
- STATE_WRITE,
- STATE_WRITE_COMPLETE,
- STATE_SSL_WAIT
+ enum SSLState {
+ SSLSTATE_NONE,
+ SSLSTATE_WAIT,
+ SSLSTATE_CONNECTED,
+ };
+
+ enum IOState {
+ IOSTATE_NONE,
+ IOSTATE_PENDING,
+ IOSTATE_COMPLETE,
};
void OnConnected(int result);
- void OnIO(int result);
+ void OnRead(int result);
+ void OnWrite(int result);
- void OnReadEvent(talk_base::AsyncSocket * socket);
- void OnWriteEvent(talk_base::AsyncSocket * socket);
- void OnConnectEvent(talk_base::AsyncSocket * socket);
+ virtual void OnConnectEvent(talk_base::AsyncSocket* socket);
int BeginSSL();
@@ -120,9 +122,11 @@ class SSLSocketAdapter : public talk_base::SSLAdapter {
TransportSocket* transport_socket_;
scoped_ptr<net::SSLClientSocket> ssl_socket_;
net::CompletionCallbackImpl<SSLSocketAdapter> connected_callback_;
- net::CompletionCallbackImpl<SSLSocketAdapter> io_callback_;
- bool ssl_connected_;
- State state_;
+ net::CompletionCallbackImpl<SSLSocketAdapter> read_callback_;
+ net::CompletionCallbackImpl<SSLSocketAdapter> write_callback_;
+ SSLState ssl_state_;
+ IOState read_state_;
+ IOState write_state_;
scoped_refptr<net::IOBuffer> transport_buf_;
int data_transferred_;