diff options
author | jiayl <jiayl@chromium.org> | 2014-11-07 09:50:26 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-11-07 17:50:49 +0000 |
commit | 7aba582ac77a4f0be9e7a7676af5c598ca6726c5 (patch) | |
tree | 6edc8b0728aab1c00ca77e7b7014923dba7ee481 /content/renderer/p2p | |
parent | d190710e56c9399e0bc1e9a88b26093190974c4d (diff) | |
download | chromium_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.cc | 8 |
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); } } |