summaryrefslogtreecommitdiffstats
path: root/content
diff options
context:
space:
mode:
authorsergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-27 02:42:41 +0000
committersergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-27 02:42:41 +0000
commite18194cf541dc4a7a56e6792518002d37307b96a (patch)
tree00b8336c058bc16e59a8f0b9f715b2187fe2d391 /content
parent866cd68e4fd9d4195026109b2e6d285b50334218 (diff)
downloadchromium_src-e18194cf541dc4a7a56e6792518002d37307b96a.zip
chromium_src-e18194cf541dc4a7a56e6792518002d37307b96a.tar.gz
chromium_src-e18194cf541dc4a7a56e6792518002d37307b96a.tar.bz2
Unbranch libjingle
BUG=35195,76790 TEST=None Review URL: http://codereview.chromium.org/7077019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86954 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content')
-rw-r--r--content/renderer/p2p/ipc_socket_factory.cc94
1 files changed, 47 insertions, 47 deletions
diff --git a/content/renderer/p2p/ipc_socket_factory.cc b/content/renderer/p2p/ipc_socket_factory.cc
index 703732e..4a1bb84 100644
--- a/content/renderer/p2p/ipc_socket_factory.cc
+++ b/content/renderer/p2p/ipc_socket_factory.cc
@@ -29,13 +29,13 @@ class IpcPacketSocket : public talk_base::AsyncPacketSocket,
const talk_base::SocketAddress& remote_address);
// talk_base::AsyncPacketSocket interface.
- virtual bool GetLocalAddress(talk_base::SocketAddress* address) const;
+ virtual talk_base::SocketAddress GetLocalAddress() const;
virtual talk_base::SocketAddress GetRemoteAddress() const;
virtual int Send(const void *pv, size_t cb);
virtual int SendTo(const void *pv, size_t cb,
const talk_base::SocketAddress& addr);
virtual int Close();
- virtual talk_base::Socket::ConnState GetState() const;
+ virtual State GetState() const;
virtual int GetOption(talk_base::Socket::Option opt, int* value);
virtual int SetOption(talk_base::Socket::Option opt, int value);
virtual int GetError() const;
@@ -50,18 +50,20 @@ class IpcPacketSocket : public talk_base::AsyncPacketSocket,
const std::vector<char>& data) OVERRIDE;
private:
- enum State {
- STATE_UNINITIALIZED,
- STATE_OPENING,
- STATE_OPEN,
- STATE_CLOSED,
- STATE_ERROR,
+ enum InternalState {
+ IS_UNINITIALIZED,
+ IS_OPENING,
+ IS_OPEN,
+ IS_CLOSED,
+ IS_ERROR,
};
void InitAcceptedTcp(P2PSocketClient* client,
const talk_base::SocketAddress& local_address,
const talk_base::SocketAddress& remote_address);
+ P2PSocketType type_;
+
// Message loop on which this socket was created and being used.
MessageLoop* message_loop_;
@@ -72,15 +74,14 @@ class IpcPacketSocket : public talk_base::AsyncPacketSocket,
// renderer side doesn't know the address until it receives OnOpen()
// event from the browser.
talk_base::SocketAddress local_address_;
- bool address_initialized_;
// Remote address for client TCP connections.
talk_base::SocketAddress remote_address_;
// Current state of the object.
- State state_;
+ InternalState state_;
- // Current error code. Valid when state_ == STATE_ERROR.
+ // Current error code. Valid when state_ == IS_ERROR.
int error_;
DISALLOW_COPY_AND_ASSIGN(IpcPacketSocket);
@@ -88,13 +89,12 @@ class IpcPacketSocket : public talk_base::AsyncPacketSocket,
IpcPacketSocket::IpcPacketSocket()
: message_loop_(MessageLoop::current()),
- address_initialized_(false),
- state_(STATE_UNINITIALIZED), error_(0) {
+ state_(IS_UNINITIALIZED), error_(0) {
}
IpcPacketSocket::~IpcPacketSocket() {
- if (state_ == STATE_OPENING || state_ == STATE_OPEN ||
- state_ == STATE_ERROR) {
+ if (state_ == IS_OPENING || state_ == IS_OPEN ||
+ state_ == IS_ERROR) {
Close();
}
}
@@ -103,12 +103,13 @@ bool IpcPacketSocket::Init(P2PSocketType type, P2PSocketClient* client,
const talk_base::SocketAddress& local_address,
const talk_base::SocketAddress& remote_address) {
DCHECK_EQ(MessageLoop::current(), message_loop_);
- DCHECK_EQ(state_, STATE_UNINITIALIZED);
+ DCHECK_EQ(state_, IS_UNINITIALIZED);
+ type_ = type;
client_ = client;
local_address_ = local_address;
remote_address_ = remote_address;
- state_ = STATE_OPENING;
+ state_ = IS_OPENING;
net::IPEndPoint local_endpoint;
if (!jingle_glue::SocketAddressToIPEndPoint(local_address, &local_endpoint)) {
@@ -132,29 +133,23 @@ void IpcPacketSocket::InitAcceptedTcp(
const talk_base::SocketAddress& local_address,
const talk_base::SocketAddress& remote_address) {
DCHECK_EQ(MessageLoop::current(), message_loop_);
- DCHECK_EQ(state_, STATE_UNINITIALIZED);
+ DCHECK_EQ(state_, IS_UNINITIALIZED);
client_ = client;
local_address_ = local_address;
remote_address_ = remote_address;
- state_ = STATE_OPEN;
+ state_ = IS_OPEN;
client_->set_delegate(this);
}
// talk_base::AsyncPacketSocket interface.
-bool IpcPacketSocket::GetLocalAddress(talk_base::SocketAddress* address) const {
+talk_base::SocketAddress IpcPacketSocket::GetLocalAddress() const {
DCHECK_EQ(MessageLoop::current(), message_loop_);
-
- if (!address_initialized_)
- return false;
-
- *address = local_address_;
- return true;
+ return local_address_;
}
talk_base::SocketAddress IpcPacketSocket::GetRemoteAddress() const {
DCHECK_EQ(MessageLoop::current(), message_loop_);
-
return remote_address_;
}
@@ -168,16 +163,16 @@ int IpcPacketSocket::SendTo(const void *data, size_t data_size,
DCHECK_EQ(MessageLoop::current(), message_loop_);
switch (state_) {
- case STATE_UNINITIALIZED:
+ case IS_UNINITIALIZED:
NOTREACHED();
return EWOULDBLOCK;
- case STATE_OPENING:
+ case IS_OPENING:
return EWOULDBLOCK;
- case STATE_CLOSED:
+ case IS_CLOSED:
return ENOTCONN;
- case STATE_ERROR:
+ case IS_ERROR:
return error_;
- case STATE_OPEN:
+ case IS_OPEN:
// Continue sending the packet.
break;
}
@@ -201,32 +196,36 @@ int IpcPacketSocket::Close() {
DCHECK_EQ(MessageLoop::current(), message_loop_);
client_->Close();
- state_ = STATE_CLOSED;
+ state_ = IS_CLOSED;
return 0;
}
-talk_base::Socket::ConnState IpcPacketSocket::GetState() const {
+talk_base::AsyncPacketSocket::State IpcPacketSocket::GetState() const {
DCHECK_EQ(MessageLoop::current(), message_loop_);
switch (state_) {
- case STATE_UNINITIALIZED:
+ case IS_UNINITIALIZED:
NOTREACHED();
- return talk_base::Socket::CS_CONNECTING;
+ return STATE_CLOSED;
- case STATE_OPENING:
- return talk_base::Socket::CS_CONNECTING;
+ case IS_OPENING:
+ return STATE_BINDING;
- case STATE_OPEN:
- return talk_base::Socket::CS_CONNECTED;
+ case IS_OPEN:
+ if (type_ == P2P_SOCKET_TCP_CLIENT) {
+ return STATE_CONNECTED;
+ } else {
+ return STATE_BOUND;
+ }
- case STATE_CLOSED:
- case STATE_ERROR:
- return talk_base::Socket::CS_CLOSED;
+ case IS_CLOSED:
+ case IS_ERROR:
+ return STATE_CLOSED;
}
NOTREACHED();
- return talk_base::Socket::CS_CLOSED;
+ return STATE_CLOSED;
}
int IpcPacketSocket::GetOption(talk_base::Socket::Option opt, int* value) {
@@ -262,8 +261,9 @@ void IpcPacketSocket::OnOpen(const net::IPEndPoint& address) {
return;
}
SignalAddressReady(this, local_address_);
- address_initialized_ = true;
- state_ = STATE_OPEN;
+ if (type_ == P2P_SOCKET_TCP_CLIENT)
+ SignalConnect(this);
+ state_ = IS_OPEN;
}
void IpcPacketSocket::OnIncomingTcpConnection(
@@ -284,7 +284,7 @@ void IpcPacketSocket::OnIncomingTcpConnection(
void IpcPacketSocket::OnError() {
DCHECK_EQ(MessageLoop::current(), message_loop_);
- state_ = STATE_ERROR;
+ state_ = IS_ERROR;
error_ = ECONNABORTED;
}