| Index: content/renderer/p2p/socket_dispatcher.cc
|
| diff --git a/content/renderer/p2p/socket_dispatcher.cc b/content/renderer/p2p/socket_dispatcher.cc
|
| index 43c9de374c506e6182dccfb259308c4c93a9768c..ba00e99ae8ee58edf497b849052a3304a9ea772b 100644
|
| --- a/content/renderer/p2p/socket_dispatcher.cc
|
| +++ b/content/renderer/p2p/socket_dispatcher.cc
|
| @@ -6,6 +6,8 @@
|
|
|
| #include "base/message_loop_proxy.h"
|
| #include "content/common/p2p_messages.h"
|
| +#include "content/renderer/p2p/host_address_request.h"
|
| +#include "content/renderer/p2p/socket_client.h"
|
|
|
| P2PSocketDispatcher::P2PSocketDispatcher(RenderView* render_view)
|
| : RenderViewObserver(render_view),
|
| @@ -42,6 +44,7 @@ bool P2PSocketDispatcher::OnMessageReceived(const IPC::Message& message) {
|
| bool handled = true;
|
| IPC_BEGIN_MESSAGE_MAP(P2PSocketDispatcher, message)
|
| IPC_MESSAGE_HANDLER(P2PMsg_NetworkListChanged, OnNetworkListChanged)
|
| + IPC_MESSAGE_HANDLER(P2PMsg_GetHostAddressResult, OnGetHostAddressResult)
|
| IPC_MESSAGE_HANDLER(P2PMsg_OnSocketCreated, OnSocketCreated)
|
| IPC_MESSAGE_HANDLER(P2PMsg_OnIncomingTcpConnection, OnIncomingTcpConnection)
|
| IPC_MESSAGE_HANDLER(P2PMsg_OnError, OnError)
|
| @@ -51,6 +54,10 @@ bool P2PSocketDispatcher::OnMessageReceived(const IPC::Message& message) {
|
| return handled;
|
| }
|
|
|
| +base::MessageLoopProxy* P2PSocketDispatcher::message_loop() {
|
| + return message_loop_;
|
| +}
|
| +
|
| int P2PSocketDispatcher::RegisterClient(P2PSocketClient* client) {
|
| return clients_.Add(client);
|
| }
|
| @@ -64,8 +71,13 @@ void P2PSocketDispatcher::SendP2PMessage(IPC::Message* msg) {
|
| Send(msg);
|
| }
|
|
|
| -base::MessageLoopProxy* P2PSocketDispatcher::message_loop() {
|
| - return message_loop_;
|
| +int P2PSocketDispatcher::RegisterHostAddressRequest(
|
| + P2PHostAddressRequest* request) {
|
| + return host_address_requests_.Add(request);
|
| +}
|
| +
|
| +void P2PSocketDispatcher::UnregisterHostAddressRequest(int id) {
|
| + host_address_requests_.Remove(id);
|
| }
|
|
|
| void P2PSocketDispatcher::OnNetworkListChanged(
|
| @@ -74,6 +86,18 @@ void P2PSocketDispatcher::OnNetworkListChanged(
|
| networks);
|
| }
|
|
|
| +void P2PSocketDispatcher::OnGetHostAddressResult(
|
| + int32 request_id,
|
| + const net::IPAddressNumber& address) {
|
| + P2PHostAddressRequest* request = host_address_requests_.Lookup(request_id);
|
| + if (!request) {
|
| + VLOG(1) << "Received P2P message for socket that doesn't exist.";
|
| + return;
|
| + }
|
| +
|
| + request->OnResponse(address);
|
| +}
|
| +
|
| void P2PSocketDispatcher::OnSocketCreated(
|
| int socket_id, const net::IPEndPoint& address) {
|
| P2PSocketClient* client = GetClient(socket_id);
|
|
|