Index: content/renderer/media/webrtc/peer_connection_dependency_factory.cc |
diff --git a/content/renderer/media/webrtc/peer_connection_dependency_factory.cc b/content/renderer/media/webrtc/peer_connection_dependency_factory.cc |
index fb09fafb11beb8b2aff5c3db0ccc1334ceaa1e9f..4554ad2d1e71f6ce4d79006effb472370c774b07 100644 |
--- a/content/renderer/media/webrtc/peer_connection_dependency_factory.cc |
+++ b/content/renderer/media/webrtc/peer_connection_dependency_factory.cc |
@@ -114,14 +114,14 @@ void HarmonizeConstraintsAndEffects(RTCMediaConstraints* constraints, |
class P2PPortAllocatorFactory : public webrtc::PortAllocatorFactoryInterface { |
public: |
- P2PPortAllocatorFactory( |
- P2PSocketDispatcher* socket_dispatcher, |
- rtc::NetworkManager* network_manager, |
- rtc::PacketSocketFactory* socket_factory) |
+ P2PPortAllocatorFactory(P2PSocketDispatcher* socket_dispatcher, |
+ rtc::NetworkManager* network_manager, |
+ rtc::PacketSocketFactory* socket_factory, |
+ bool disable_multiple_routes) |
: socket_dispatcher_(socket_dispatcher), |
network_manager_(network_manager), |
- socket_factory_(socket_factory) { |
- } |
+ socket_factory_(socket_factory), |
+ disable_multiple_routes_(disable_multiple_routes) {} |
cricket::PortAllocator* CreatePortAllocator( |
const std::vector<StunConfiguration>& stun_servers, |
@@ -147,6 +147,7 @@ class P2PPortAllocatorFactory : public webrtc::PortAllocatorFactoryInterface { |
turn_configurations[i].server.hostname(), |
turn_configurations[i].server.port())); |
} |
+ config.disable_multiple_routes = disable_multiple_routes_; |
return new P2PPortAllocator( |
socket_dispatcher_.get(), network_manager_, socket_factory_, config); |
@@ -161,6 +162,9 @@ class P2PPortAllocatorFactory : public webrtc::PortAllocatorFactoryInterface { |
// PeerConnectionDependencyFactory. |
rtc::NetworkManager* network_manager_; |
rtc::PacketSocketFactory* socket_factory_; |
+ |
+ // When false, individual NICs will be bound for address discovery phase. |
+ bool disable_multiple_routes_; |
}; |
PeerConnectionDependencyFactory::PeerConnectionDependencyFactory( |
@@ -170,7 +174,8 @@ PeerConnectionDependencyFactory::PeerConnectionDependencyFactory( |
signaling_thread_(NULL), |
worker_thread_(NULL), |
chrome_signaling_thread_("Chrome_libJingle_Signaling"), |
- chrome_worker_thread_("Chrome_libJingle_WorkerThread") { |
+ chrome_worker_thread_("Chrome_libJingle_WorkerThread"), |
+ disable_multiple_routes_(false) { |
} |
PeerConnectionDependencyFactory::~PeerConnectionDependencyFactory() { |
@@ -395,10 +400,9 @@ PeerConnectionDependencyFactory::CreatePeerConnection( |
return NULL; |
scoped_refptr<P2PPortAllocatorFactory> pa_factory = |
- new rtc::RefCountedObject<P2PPortAllocatorFactory>( |
- p2p_socket_dispatcher_.get(), |
- network_manager_, |
- socket_factory_.get()); |
+ new rtc::RefCountedObject<P2PPortAllocatorFactory>( |
+ p2p_socket_dispatcher_.get(), network_manager_, socket_factory_.get(), |
+ disable_multiple_routes_); |
PeerConnectionIdentityService* identity_service = |
new PeerConnectionIdentityService( |