| Index: jingle/notifier/base/fake_ssl_client_socket.cc
|
| ===================================================================
|
| --- jingle/notifier/base/fake_ssl_client_socket.cc (revision 81429)
|
| +++ jingle/notifier/base/fake_ssl_client_socket.cc (working copy)
|
| @@ -1,4 +1,4 @@
|
| -// Copyright (c) 2010 The Chromium Authors. All rights reserved.
|
| +// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| @@ -11,6 +11,7 @@
|
| #include "base/logging.h"
|
| #include "net/base/io_buffer.h"
|
| #include "net/base/net_errors.h"
|
| +#include "net/socket/client_socket_handle.h"
|
|
|
| namespace notifier {
|
|
|
| @@ -77,7 +78,7 @@
|
| }
|
|
|
| FakeSSLClientSocket::FakeSSLClientSocket(
|
| - net::ClientSocket* transport_socket)
|
| + net::ClientSocketHandle* transport_socket)
|
| : connect_callback_(ALLOW_THIS_IN_INITIALIZER_LIST(this),
|
| &FakeSSLClientSocket::OnConnectDone),
|
| send_client_hello_callback_(
|
| @@ -86,13 +87,13 @@
|
| verify_server_hello_callback_(
|
| ALLOW_THIS_IN_INITIALIZER_LIST(this),
|
| &FakeSSLClientSocket::OnVerifyServerHelloDone),
|
| - transport_socket_(transport_socket),
|
| + transport_(transport_socket),
|
| next_handshake_state_(STATE_NONE),
|
| handshake_completed_(false),
|
| user_connect_callback_(NULL),
|
| write_buf_(NewDrainableIOBufferWithSize(arraysize(kSslClientHello))),
|
| read_buf_(NewDrainableIOBufferWithSize(arraysize(kSslServerHello))) {
|
| - CHECK(transport_socket_.get());
|
| + CHECK(transport_.get());
|
| std::memcpy(write_buf_->data(), kSslClientHello, arraysize(kSslClientHello));
|
| }
|
|
|
| @@ -102,22 +103,22 @@
|
| net::CompletionCallback* callback) {
|
| DCHECK_EQ(next_handshake_state_, STATE_NONE);
|
| DCHECK(handshake_completed_);
|
| - return transport_socket_->Read(buf, buf_len, callback);
|
| + return transport_->socket()->Read(buf, buf_len, callback);
|
| }
|
|
|
| int FakeSSLClientSocket::Write(net::IOBuffer* buf, int buf_len,
|
| net::CompletionCallback* callback) {
|
| DCHECK_EQ(next_handshake_state_, STATE_NONE);
|
| DCHECK(handshake_completed_);
|
| - return transport_socket_->Write(buf, buf_len, callback);
|
| + return transport_->socket()->Write(buf, buf_len, callback);
|
| }
|
|
|
| bool FakeSSLClientSocket::SetReceiveBufferSize(int32 size) {
|
| - return transport_socket_->SetReceiveBufferSize(size);
|
| + return transport_->socket()->SetReceiveBufferSize(size);
|
| }
|
|
|
| bool FakeSSLClientSocket::SetSendBufferSize(int32 size) {
|
| - return transport_socket_->SetSendBufferSize(size);
|
| + return transport_->socket()->SetSendBufferSize(size);
|
| }
|
|
|
| int FakeSSLClientSocket::Connect(net::CompletionCallback* callback) {
|
| @@ -180,10 +181,14 @@
|
| }
|
|
|
| int FakeSSLClientSocket::DoConnect() {
|
| - int status = transport_socket_->Connect(&connect_callback_);
|
| - if (status != net::OK) {
|
| + // The passed in socket may already be connected.
|
| + int status = net::OK;
|
| + if (!transport_->socket()->IsConnected())
|
| + status = transport_->socket()->Connect(&connect_callback_);
|
| +
|
| + if (status != net::OK)
|
| return status;
|
| - }
|
| +
|
| ProcessConnectDone();
|
| return net::OK;
|
| }
|
| @@ -207,7 +212,7 @@
|
| }
|
|
|
| int FakeSSLClientSocket::DoSendClientHello() {
|
| - int status = transport_socket_->Write(
|
| + int status = transport_->socket()->Write(
|
| write_buf_, write_buf_->BytesRemaining(),
|
| &send_client_hello_callback_);
|
| if (status < net::OK) {
|
| @@ -240,7 +245,7 @@
|
| }
|
|
|
| int FakeSSLClientSocket::DoVerifyServerHello() {
|
| - int status = transport_socket_->Read(
|
| + int status = transport_->socket()->Read(
|
| read_buf_, read_buf_->BytesRemaining(),
|
| &verify_server_hello_callback_);
|
| if (status < net::OK) {
|
| @@ -292,7 +297,7 @@
|
| }
|
|
|
| void FakeSSLClientSocket::Disconnect() {
|
| - transport_socket_->Disconnect();
|
| + transport_->Reset();
|
| next_handshake_state_ = STATE_NONE;
|
| handshake_completed_ = false;
|
| user_connect_callback_ = NULL;
|
| @@ -301,35 +306,35 @@
|
| }
|
|
|
| bool FakeSSLClientSocket::IsConnected() const {
|
| - return handshake_completed_ && transport_socket_->IsConnected();
|
| + return handshake_completed_ && transport_->socket()->IsConnected();
|
| }
|
|
|
| bool FakeSSLClientSocket::IsConnectedAndIdle() const {
|
| - return handshake_completed_ && transport_socket_->IsConnectedAndIdle();
|
| + return handshake_completed_ && transport_->socket()->IsConnectedAndIdle();
|
| }
|
|
|
| int FakeSSLClientSocket::GetPeerAddress(net::AddressList* address) const {
|
| - return transport_socket_->GetPeerAddress(address);
|
| + return transport_->socket()->GetPeerAddress(address);
|
| }
|
|
|
| const net::BoundNetLog& FakeSSLClientSocket::NetLog() const {
|
| - return transport_socket_->NetLog();
|
| + return transport_->socket()->NetLog();
|
| }
|
|
|
| void FakeSSLClientSocket::SetSubresourceSpeculation() {
|
| - transport_socket_->SetSubresourceSpeculation();
|
| + transport_->socket()->SetSubresourceSpeculation();
|
| }
|
|
|
| void FakeSSLClientSocket::SetOmniboxSpeculation() {
|
| - transport_socket_->SetOmniboxSpeculation();
|
| + transport_->socket()->SetOmniboxSpeculation();
|
| }
|
|
|
| bool FakeSSLClientSocket::WasEverUsed() const {
|
| - return transport_socket_->WasEverUsed();
|
| + return transport_->socket()->WasEverUsed();
|
| }
|
|
|
| bool FakeSSLClientSocket::UsingTCPFastOpen() const {
|
| - return transport_socket_->UsingTCPFastOpen();
|
| + return transport_->socket()->UsingTCPFastOpen();
|
| }
|
|
|
| } // namespace notifier
|
|
|