Index: net/socket/ssl_client_socket_mac.cc |
diff --git a/net/socket/ssl_client_socket_mac.cc b/net/socket/ssl_client_socket_mac.cc |
index f58d3409ac9fb813a1f627c9c8eb2769f1198640..b6e03f77701b5de792a12f6cd8286eb8f65a4299 100644 |
--- a/net/socket/ssl_client_socket_mac.cc |
+++ b/net/socket/ssl_client_socket_mac.cc |
@@ -524,16 +524,9 @@ SSLClientSocketMac::SSLClientSocketMac(ClientSocketHandle* transport_socket, |
const HostPortPair& host_and_port, |
const SSLConfig& ssl_config, |
const SSLClientSocketContext& context) |
- : transport_read_callback_(this, |
- &SSLClientSocketMac::OnTransportReadComplete), |
- transport_write_callback_(this, |
- &SSLClientSocketMac::OnTransportWriteComplete), |
- transport_(transport_socket), |
+ : transport_(transport_socket), |
host_and_port_(host_and_port), |
ssl_config_(ssl_config), |
- old_user_connect_callback_(NULL), |
- old_user_read_callback_(NULL), |
- user_write_callback_(NULL), |
user_read_buf_len_(0), |
user_write_buf_len_(0), |
next_handshake_state_(STATE_NONE), |
@@ -555,32 +548,10 @@ SSLClientSocketMac::~SSLClientSocketMac() { |
Disconnect(); |
} |
-int SSLClientSocketMac::Connect(OldCompletionCallback* callback) { |
- DCHECK(transport_.get()); |
- DCHECK(next_handshake_state_ == STATE_NONE); |
- DCHECK(!old_user_connect_callback_ && user_connect_callback_.is_null()); |
- |
- net_log_.BeginEvent(NetLog::TYPE_SSL_CONNECT, NULL); |
- |
- int rv = InitializeSSLContext(); |
- if (rv != OK) { |
- net_log_.EndEventWithNetErrorCode(NetLog::TYPE_SSL_CONNECT, rv); |
- return rv; |
- } |
- |
- next_handshake_state_ = STATE_HANDSHAKE; |
- rv = DoHandshakeLoop(OK); |
- if (rv == ERR_IO_PENDING) { |
- old_user_connect_callback_ = callback; |
- } else { |
- net_log_.EndEventWithNetErrorCode(NetLog::TYPE_SSL_CONNECT, rv); |
- } |
- return rv; |
-} |
int SSLClientSocketMac::Connect(const CompletionCallback& callback) { |
DCHECK(transport_.get()); |
DCHECK(next_handshake_state_ == STATE_NONE); |
- DCHECK(!old_user_connect_callback_ && user_connect_callback_.is_null()); |
+ DCHECK(user_connect_callback_.is_null()); |
net_log_.BeginEvent(NetLog::TYPE_SSL_CONNECT, NULL); |
@@ -698,27 +669,9 @@ base::TimeDelta SSLClientSocketMac::GetConnectTimeMicros() const { |
} |
int SSLClientSocketMac::Read(IOBuffer* buf, int buf_len, |
- OldCompletionCallback* callback) { |
- DCHECK(completed_handshake()); |
- DCHECK(!old_user_read_callback_ && user_read_callback_.is_null()); |
- DCHECK(!user_read_buf_); |
- |
- user_read_buf_ = buf; |
- user_read_buf_len_ = buf_len; |
- |
- int rv = DoPayloadRead(); |
- if (rv == ERR_IO_PENDING) { |
- old_user_read_callback_ = callback; |
- } else { |
- user_read_buf_ = NULL; |
- user_read_buf_len_ = 0; |
- } |
- return rv; |
-} |
-int SSLClientSocketMac::Read(IOBuffer* buf, int buf_len, |
const CompletionCallback& callback) { |
DCHECK(completed_handshake()); |
- DCHECK(!old_user_read_callback_ && user_read_callback_.is_null()); |
+ DCHECK(user_read_callback_.is_null()); |
DCHECK(!user_read_buf_); |
user_read_buf_ = buf; |
@@ -735,9 +688,9 @@ int SSLClientSocketMac::Read(IOBuffer* buf, int buf_len, |
} |
int SSLClientSocketMac::Write(IOBuffer* buf, int buf_len, |
- OldCompletionCallback* callback) { |
+ const CompletionCallback& callback) { |
DCHECK(completed_handshake()); |
- DCHECK(!user_write_callback_); |
+ DCHECK(user_write_callback_.is_null()); |
DCHECK(!user_write_buf_); |
user_write_buf_ = buf; |
@@ -936,51 +889,37 @@ int SSLClientSocketMac::InitializeSSLContext() { |
void SSLClientSocketMac::DoConnectCallback(int rv) { |
DCHECK(rv != ERR_IO_PENDING); |
- DCHECK(old_user_connect_callback_ || !user_connect_callback_.is_null()); |
+ DCHECK(!user_connect_callback_.is_null()); |
- if (old_user_connect_callback_) { |
- OldCompletionCallback* c = old_user_connect_callback_; |
- old_user_connect_callback_ = NULL; |
- c->Run(rv > OK ? OK : rv); |
- } else { |
- CompletionCallback c = user_connect_callback_; |
- user_connect_callback_.Reset(); |
- c.Run(rv > OK ? OK : rv); |
- } |
+ CompletionCallback c = user_connect_callback_; |
+ user_connect_callback_.Reset(); |
+ c.Run(rv > OK ? OK : rv); |
} |
void SSLClientSocketMac::DoReadCallback(int rv) { |
DCHECK(rv != ERR_IO_PENDING); |
- DCHECK(old_user_read_callback_ || !user_read_callback_.is_null()); |
+ DCHECK(!user_read_callback_.is_null()); |
// Since Run may result in Read being called, clear user_read_callback_ up |
// front. |
- if (old_user_read_callback_) { |
- OldCompletionCallback* c = old_user_read_callback_; |
- old_user_read_callback_ = NULL; |
- user_read_buf_ = NULL; |
- user_read_buf_len_ = 0; |
- c->Run(rv); |
- } else { |
- CompletionCallback c = user_read_callback_; |
- user_read_callback_.Reset(); |
- user_read_buf_ = NULL; |
- user_read_buf_len_ = 0; |
- c.Run(rv); |
- } |
+ CompletionCallback c = user_read_callback_; |
+ user_read_callback_.Reset(); |
+ user_read_buf_ = NULL; |
+ user_read_buf_len_ = 0; |
+ c.Run(rv); |
} |
void SSLClientSocketMac::DoWriteCallback(int rv) { |
DCHECK(rv != ERR_IO_PENDING); |
- DCHECK(user_write_callback_); |
+ DCHECK(!user_write_callback_.is_null()); |
// Since Run may result in Write being called, clear user_write_callback_ up |
// front. |
- OldCompletionCallback* c = user_write_callback_; |
- user_write_callback_ = NULL; |
+ CompletionCallback c = user_write_callback_; |
+ user_write_callback_.Reset(); |
user_write_buf_ = NULL; |
user_write_buf_len_ = 0; |
- c->Run(rv); |
+ c.Run(rv); |
} |
void SSLClientSocketMac::OnHandshakeIOComplete(int result) { |
@@ -990,7 +929,7 @@ void SSLClientSocketMac::OnHandshakeIOComplete(int result) { |
// renegotiating (which occurs because we are in the middle of a Read |
// when the renegotiation process starts). So we complete the Read |
// here. |
- if (!old_user_connect_callback_ && user_connect_callback_.is_null()) { |
+ if (user_connect_callback_.is_null()) { |
DoReadCallback(rv); |
return; |
} |
@@ -1328,7 +1267,7 @@ int SSLClientSocketMac::DoCompletedRenegotiation(int result) { |
} |
void SSLClientSocketMac::DidCompleteRenegotiation() { |
- DCHECK(!old_user_connect_callback_ && user_connect_callback_.is_null()); |
+ DCHECK(user_connect_callback_.is_null()); |
renegotiating_ = false; |
next_handshake_state_ = STATE_COMPLETED_RENEGOTIATION; |
} |
@@ -1408,9 +1347,11 @@ OSStatus SSLClientSocketMac::SSLReadCallback(SSLConnectionRef connection, |
int rv = 1; // any old value to spin the loop below |
while (rv > 0 && total_read < *data_length) { |
us->read_io_buf_ = new IOBuffer(*data_length - total_read); |
- rv = us->transport_->socket()->Read(us->read_io_buf_, |
- *data_length - total_read, |
- &us->transport_read_callback_); |
+ rv = us->transport_->socket()->Read( |
+ us->read_io_buf_, |
+ *data_length - total_read, |
+ base::Bind(&SSLClientSocketMac::OnTransportReadComplete, |
+ base::Unretained(us))); |
if (rv >= 0) { |
us->recv_buffer_.insert(us->recv_buffer_.end(), |
@@ -1470,9 +1411,11 @@ OSStatus SSLClientSocketMac::SSLWriteCallback(SSLConnectionRef connection, |
us->write_io_buf_ = new IOBuffer(us->send_buffer_.size()); |
memcpy(us->write_io_buf_->data(), &us->send_buffer_[0], |
us->send_buffer_.size()); |
- rv = us->transport_->socket()->Write(us->write_io_buf_, |
- us->send_buffer_.size(), |
- &us->transport_write_callback_); |
+ rv = us->transport_->socket()->Write( |
+ us->write_io_buf_, |
+ us->send_buffer_.size(), |
+ base::Bind(&SSLClientSocketMac::OnTransportWriteComplete, |
+ base::Unretained(us))); |
if (rv > 0) { |
us->send_buffer_.erase(us->send_buffer_.begin(), |
us->send_buffer_.begin() + rv); |