Index: content/renderer/p2p/p2p_transport_impl.cc |
diff --git a/content/renderer/p2p/p2p_transport_impl.cc b/content/renderer/p2p/p2p_transport_impl.cc |
index 02f0a9d518985fe38c2bd640369a948f0bdb11f2..aa9377a27d738ba068111a52d542bc17b649c10a 100644 |
--- a/content/renderer/p2p/p2p_transport_impl.cc |
+++ b/content/renderer/p2p/p2p_transport_impl.cc |
@@ -6,6 +6,7 @@ |
#include "content/renderer/p2p/ipc_network_manager.h" |
#include "content/renderer/p2p/ipc_socket_factory.h" |
+#include "content/renderer/p2p/port_allocator.h" |
#include "content/renderer/render_view.h" |
#include "jingle/glue/channel_socket_adapter.h" |
#include "jingle/glue/pseudotcp_adapter.h" |
@@ -20,7 +21,8 @@ namespace content { |
P2PTransportImpl::P2PTransportImpl( |
talk_base::NetworkManager* network_manager, |
talk_base::PacketSocketFactory* socket_factory) |
- : event_handler_(NULL), |
+ : socket_dispatcher_(NULL), |
+ event_handler_(NULL), |
state_(STATE_NONE), |
network_manager_(network_manager), |
socket_factory_(socket_factory), |
@@ -29,12 +31,14 @@ P2PTransportImpl::P2PTransportImpl( |
} |
P2PTransportImpl::P2PTransportImpl(P2PSocketDispatcher* socket_dispatcher) |
- : event_handler_(NULL), |
+ : socket_dispatcher_(socket_dispatcher), |
+ event_handler_(NULL), |
state_(STATE_NONE), |
network_manager_(new IpcNetworkManager(socket_dispatcher)), |
socket_factory_(new IpcPacketSocketFactory(socket_dispatcher)), |
ALLOW_THIS_IN_INITIALIZER_LIST(connect_callback_( |
this, &P2PTransportImpl::OnTcpConnected)) { |
+ DCHECK(socket_dispatcher); |
} |
P2PTransportImpl::~P2PTransportImpl() { |
@@ -53,9 +57,16 @@ bool P2PTransportImpl::Init(const std::string& name, |
name_ = name; |
event_handler_ = event_handler; |
- // TODO(sergeyu): Use STUN/Relay settings from |config|. |
- allocator_.reset(new cricket::BasicPortAllocator( |
- network_manager_.get(), socket_factory_.get())); |
+ if (socket_dispatcher_) { |
+ allocator_.reset(new P2PPortAllocator( |
+ socket_dispatcher_, network_manager_.get(), |
+ socket_factory_.get(), config)); |
+ } else { |
+ // Use BasicPortAllocator if we don't have P2PSocketDispatcher |
+ // (for unittests). |
+ allocator_.reset(new cricket::BasicPortAllocator( |
+ network_manager_.get(), socket_factory_.get())); |
+ } |
DCHECK(!channel_.get()); |
channel_.reset(new cricket::P2PTransportChannel( |