diff options
author | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-09 20:09:14 +0000 |
---|---|---|
committer | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-09 20:09:14 +0000 |
commit | efa5d93850c47d34931c89533ec3f480938e056a (patch) | |
tree | 69ccd135eb2be4c5d6c96c945f9206b902d4f240 /content/renderer/p2p/socket_dispatcher.h | |
parent | cbee936231bafb19a7be8a2eec44470b40ad326b (diff) | |
download | chromium_src-efa5d93850c47d34931c89533ec3f480938e056a.zip chromium_src-efa5d93850c47d34931c89533ec3f480938e056a.tar.gz chromium_src-efa5d93850c47d34931c89533ec3f480938e056a.tar.bz2 |
Add IPC for DNS host address resolution.
TEST=None
BUG=83242
Review URL: http://codereview.chromium.org/7599003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@96047 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer/p2p/socket_dispatcher.h')
-rw-r--r-- | content/renderer/p2p/socket_dispatcher.h | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/content/renderer/p2p/socket_dispatcher.h b/content/renderer/p2p/socket_dispatcher.h index c4b71cd..3dbc49d 100644 --- a/content/renderer/p2p/socket_dispatcher.h +++ b/content/renderer/p2p/socket_dispatcher.h @@ -27,13 +27,20 @@ #include "base/observer_list_threadsafe.h" #include "base/synchronization/lock.h" #include "content/common/p2p_sockets.h" -#include "content/renderer/p2p/socket_client.h" #include "content/renderer/render_view_observer.h" +#include "net/base/net_util.h" namespace base { class MessageLoopProxy; } // namespace base +namespace net { +class IPEndPoint; +} // namespace net + +class P2PHostAddressRequest; +class P2PSocketClient; + // P2PSocketDispatcher works on the renderer thread. It dispatches all // messages on that thread, and all its methods must be called on the // same thread. @@ -68,16 +75,24 @@ class P2PSocketDispatcher : public RenderViewObserver { virtual bool OnMessageReceived(const IPC::Message& message); private: + friend class P2PHostAddressRequest; friend class P2PSocketClient; + base::MessageLoopProxy* message_loop(); + // Called by P2PSocketClient. int RegisterClient(P2PSocketClient* client); void UnregisterClient(int id); void SendP2PMessage(IPC::Message* msg); - base::MessageLoopProxy* message_loop(); + + // Called by DnsRequest. + int RegisterHostAddressRequest(P2PHostAddressRequest* request); + void UnregisterHostAddressRequest(int id); // Incoming message handlers. void OnNetworkListChanged(const net::NetworkInterfaceList& networks); + void OnGetHostAddressResult(int32 request_id, + const net::IPAddressNumber& address); void OnSocketCreated(int socket_id, const net::IPEndPoint& address); void OnIncomingTcpConnection(int socket_id, const net::IPEndPoint& address); void OnError(int socket_id); @@ -89,6 +104,8 @@ class P2PSocketDispatcher : public RenderViewObserver { scoped_refptr<base::MessageLoopProxy> message_loop_; IDMap<P2PSocketClient> clients_; + IDMap<P2PHostAddressRequest> host_address_requests_; + bool network_notifications_started_; scoped_refptr<ObserverListThreadSafe<NetworkListObserver> > network_list_observers_; |