summaryrefslogtreecommitdiffstats
path: root/content/renderer/p2p/socket_dispatcher.h
diff options
context:
space:
mode:
authorsergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-09 20:09:14 +0000
committersergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-09 20:09:14 +0000
commitefa5d93850c47d34931c89533ec3f480938e056a (patch)
tree69ccd135eb2be4c5d6c96c945f9206b902d4f240 /content/renderer/p2p/socket_dispatcher.h
parentcbee936231bafb19a7be8a2eec44470b40ad326b (diff)
downloadchromium_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.h21
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_;