summaryrefslogtreecommitdiffstats
path: root/content/renderer/p2p
diff options
context:
space:
mode:
authorjiayl <jiayl@chromium.org>2014-11-07 09:50:26 -0800
committerCommit bot <commit-bot@chromium.org>2014-11-07 17:50:49 +0000
commit7aba582ac77a4f0be9e7a7676af5c598ca6726c5 (patch)
tree6edc8b0728aab1c00ca77e7b7014923dba7ee481 /content/renderer/p2p
parentd190710e56c9399e0bc1e9a88b26093190974c4d (diff)
downloadchromium_src-7aba582ac77a4f0be9e7a7676af5c598ca6726c5.zip
chromium_src-7aba582ac77a4f0be9e7a7676af5c598ca6726c5.tar.gz
chromium_src-7aba582ac77a4f0be9e7a7676af5c598ca6726c5.tar.bz2
IpcPacketSocket should SignalConnect AFTER updating the remote address.
Otherwise the TurnPort still gets the unresolved remote address when a proxy is used to resolve the address. BUG=webrtc:3868 Review URL: https://codereview.chromium.org/706673002 Cr-Commit-Position: refs/heads/master@{#303253}
Diffstat (limited to 'content/renderer/p2p')
-rw-r--r--content/renderer/p2p/ipc_socket_factory.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/content/renderer/p2p/ipc_socket_factory.cc b/content/renderer/p2p/ipc_socket_factory.cc
index 814ef3e..27d6825 100644
--- a/content/renderer/p2p/ipc_socket_factory.cc
+++ b/content/renderer/p2p/ipc_socket_factory.cc
@@ -376,6 +376,9 @@ int IpcPacketSocket::SendTo(const void *data, size_t data_size,
net::IPEndPoint address_chrome;
if (!jingle_glue::SocketAddressToIPEndPoint(address, &address_chrome)) {
+ VLOG(1) << "Failed to convert remote address to IPEndPoint: address = "
+ << address.ToSensitiveString() << ", remote_address_ = "
+ << remote_address_.ToSensitiveString();
NOTREACHED();
error_ = EINVAL;
return -1;
@@ -498,7 +501,6 @@ void IpcPacketSocket::OnOpen(const net::IPEndPoint& local_address,
SignalAddressReady(this, local_address_);
if (IsTcpClientSocket(type_)) {
- SignalConnect(this);
// If remote address is unresolved, set resolved remote IP address received
// in the callback. This address will be used while sending the packets
// over the network.
@@ -511,6 +513,10 @@ void IpcPacketSocket::OnOpen(const net::IPEndPoint& local_address,
// Set only the IP address.
remote_address_.SetResolvedIP(jingle_socket_address.ipaddr());
}
+
+ // SignalConnect after updating the |remote_address_| so that the listener
+ // can get the resolved remote address.
+ SignalConnect(this);
}
}