summaryrefslogtreecommitdiffstats
path: root/content/renderer/p2p/port_allocator.h
diff options
context:
space:
mode:
Diffstat (limited to 'content/renderer/p2p/port_allocator.h')
-rw-r--r--content/renderer/p2p/port_allocator.h43
1 files changed, 40 insertions, 3 deletions
diff --git a/content/renderer/p2p/port_allocator.h b/content/renderer/p2p/port_allocator.h
index 0761ba2..fe5511a 100644
--- a/content/renderer/p2p/port_allocator.h
+++ b/content/renderer/p2p/port_allocator.h
@@ -8,17 +8,26 @@
#include "base/memory/ref_counted.h"
#include "net/base/net_util.h"
#include "third_party/libjingle/source/talk/p2p/client/basicportallocator.h"
+#include "third_party/WebKit/Source/WebKit/chromium/public/WebURLLoaderClient.h"
#include "webkit/glue/p2p_transport.h"
+namespace WebKit {
+class WebFrame;
+class WebURLLoader;
+} // namespace WebKit
+
namespace content {
class P2PHostAddressRequest;
class P2PPortAllocatorSession;
class P2PSocketDispatcher;
-class P2PPortAllocator : public cricket::BasicPortAllocator{
+// TODO(sergeyu): There is overlap between this class and
+// HttpPortAllocator. Refactor HttpPortAllocator
+class P2PPortAllocator : public cricket::BasicPortAllocator {
public:
- P2PPortAllocator(P2PSocketDispatcher* socket_dispatcher,
+ P2PPortAllocator(WebKit::WebFrame* web_frame,
+ P2PSocketDispatcher* socket_dispatcher,
talk_base::NetworkManager* network_manager,
talk_base::PacketSocketFactory* socket_factory,
const webkit_glue::P2PTransport::Config& config);
@@ -31,13 +40,15 @@ class P2PPortAllocator : public cricket::BasicPortAllocator{
private:
friend class P2PPortAllocatorSession;
+ WebKit::WebFrame* web_frame_;
P2PSocketDispatcher* socket_dispatcher_;
webkit_glue::P2PTransport::Config config_;
DISALLOW_COPY_AND_ASSIGN(P2PPortAllocator);
};
-class P2PPortAllocatorSession : public cricket::BasicPortAllocatorSession {
+class P2PPortAllocatorSession : public cricket::BasicPortAllocatorSession,
+ public WebKit::WebURLLoaderClient {
public:
P2PPortAllocatorSession(
P2PPortAllocator* allocator,
@@ -45,6 +56,16 @@ class P2PPortAllocatorSession : public cricket::BasicPortAllocatorSession {
const std::string& session_type);
virtual ~P2PPortAllocatorSession();
+ // WebKit::WebURLLoaderClient overrides.
+ virtual void didReceiveData(WebKit::WebURLLoader* loader,
+ const char* data,
+ int data_length,
+ int encoded_data_length) OVERRIDE;
+ virtual void didFinishLoading(WebKit::WebURLLoader* loader,
+ double finish_time) OVERRIDE;
+ virtual void didFail(WebKit::WebURLLoader* loader,
+ const WebKit::WebURLError& error) OVERRIDE;
+
protected:
// Overrides for cricket::BasicPortAllocatorSession.
virtual void GetPortConfigurations() OVERRIDE;
@@ -53,9 +74,25 @@ class P2PPortAllocatorSession : public cricket::BasicPortAllocatorSession {
void ResolveStunServerAddress();
void OnStunServerAddress(const net::IPAddressNumber& address);
+ void AllocateRelaySession();
+ void ParseRelayResponse();
+
+ void AddConfig();
+
P2PPortAllocator* allocator_;
scoped_refptr<P2PHostAddressRequest> stun_address_request_;
+ talk_base::SocketAddress stun_server_address_;
+
+ scoped_ptr<WebKit::WebURLLoader> relay_session_request_;
+ int relay_session_attemtps_;
+ std::string relay_session_response_;
+ std::string relay_username_;
+ std::string relay_password_;
+ talk_base::SocketAddress relay_ip_;
+ int relay_udp_port_;
+ int relay_tcp_port_;
+ int relay_ssltcp_port_;
DISALLOW_COPY_AND_ASSIGN(P2PPortAllocatorSession);
};