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

Unified Diff: content/browser/renderer_host/p2p/socket_host_tcp.cc

Issue 16516003: SSLTCP (pseudo-SSL with fake handshake and unencrypted data) support for p2p socket. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 years, 6 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
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() {
« no previous file with comments | « content/browser/renderer_host/p2p/socket_host_tcp.h ('k') | content/browser/renderer_host/p2p/socket_host_tcp_server.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698