| Index: content/browser/renderer_host/p2p/socket_host_tcp.cc
|
| ===================================================================
|
| --- content/browser/renderer_host/p2p/socket_host_tcp.cc (revision 205587)
|
| +++ content/browser/renderer_host/p2p/socket_host_tcp.cc (working copy)
|
| @@ -7,6 +7,7 @@
|
| #include "base/sys_byteorder.h"
|
| #include "content/common/p2p_messages.h"
|
| #include "ipc/ipc_sender.h"
|
| +#include "jingle/glue/fake_ssl_client_socket.h"
|
| #include "net/base/io_buffer.h"
|
| #include "net/base/net_errors.h"
|
| #include "net/base/net_util.h"
|
| @@ -20,15 +21,22 @@
|
| const int kPacketLengthOffset = 2;
|
| const int kTurnChannelDataHeaderSize = 4;
|
|
|
| +bool IsSslClientSocket(content::P2PSocketType type) {
|
| + return (type == content::P2P_SOCKET_SSLTCP_CLIENT ||
|
| + type == content::P2P_SOCKET_STUN_SSLTCP_CLIENT);
|
| +}
|
| +
|
| } // namespace
|
|
|
| namespace content {
|
|
|
| P2PSocketHostTcpBase::P2PSocketHostTcpBase(IPC::Sender* message_sender,
|
| - int id)
|
| + int id,
|
| + P2PSocketType type)
|
| : P2PSocketHost(message_sender, id),
|
| write_pending_(false),
|
| - connected_(false) {
|
| + connected_(false),
|
| + type_(type) {
|
| }
|
|
|
| P2PSocketHostTcpBase::~P2PSocketHostTcpBase() {
|
| @@ -44,6 +52,7 @@
|
| DCHECK_EQ(state_, STATE_UNINITIALIZED);
|
|
|
| remote_address_ = remote_address;
|
| + // TODO(ronghuawu): Add FakeSSLServerSocket.
|
| socket_.reset(socket);
|
| state_ = STATE_OPEN;
|
| DoRead();
|
| @@ -63,7 +72,11 @@
|
| OnError();
|
| return false;
|
| }
|
| - socket_.reset(tcp_socket.release());
|
| + if (IsSslClientSocket(type_)) {
|
| + socket_.reset(new jingle_glue::FakeSSLClientSocket(tcp_socket.release()));
|
| + } else {
|
| + socket_ = tcp_socket.PassAs<net::StreamSocket>();
|
| + }
|
|
|
| int result = socket_->Connect(
|
| base::Bind(&P2PSocketHostTcp::OnConnected, base::Unretained(this)));
|
| @@ -272,8 +285,11 @@
|
| }
|
| }
|
|
|
| -P2PSocketHostTcp::P2PSocketHostTcp(IPC::Sender* message_sender, int id)
|
| - : P2PSocketHostTcpBase(message_sender, id) {
|
| +P2PSocketHostTcp::P2PSocketHostTcp(IPC::Sender* message_sender,
|
| + int id,
|
| + P2PSocketType type)
|
| + : P2PSocketHostTcpBase(message_sender, id, type) {
|
| + DCHECK(type == P2P_SOCKET_TCP_CLIENT || type == P2P_SOCKET_SSLTCP_CLIENT);
|
| }
|
|
|
| P2PSocketHostTcp::~P2PSocketHostTcp() {
|
| @@ -307,8 +323,11 @@
|
|
|
| // P2PSocketHostStunTcp
|
| P2PSocketHostStunTcp::P2PSocketHostStunTcp(IPC::Sender* message_sender,
|
| - int id)
|
| - : P2PSocketHostTcpBase(message_sender, id) {
|
| + int id,
|
| + P2PSocketType type)
|
| + : P2PSocketHostTcpBase(message_sender, id, type) {
|
| + DCHECK(type == P2P_SOCKET_STUN_TCP_CLIENT ||
|
| + type == P2P_SOCKET_STUN_SSLTCP_CLIENT);
|
| }
|
|
|
| P2PSocketHostStunTcp::~P2PSocketHostStunTcp() {
|
|
|