1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "remoting/host/session_manager_factory.h" 6 7 #include "remoting/jingle_glue/chromium_port_allocator.h" 8 #include "remoting/jingle_glue/network_settings.h" 9 #include "remoting/protocol/jingle_session_manager.h" 10 #include "remoting/protocol/libjingle_transport_factory.h" 11 #include "remoting/protocol/session_manager.h" 12 13 namespace remoting { 14 15 scoped_ptr<protocol::SessionManager> CreateHostSessionManager( 16 const NetworkSettings& network_settings, 17 const scoped_refptr<net::URLRequestContextGetter>& 18 url_request_context_getter) { 19 scoped_ptr<protocol::TransportFactory> transport_factory( 20 protocol::LibjingleTransportFactory::Create(network_settings, 21 url_request_context_getter)); 22 23 // Use the Jingle protocol for channel-negotiation signalling between 24 // peer TransportFactories. 25 bool fetch_stun_relay_info = network_settings.nat_traversal_mode == 26 NetworkSettings::NAT_TRAVERSAL_ENABLED; 27 28 scoped_ptr<protocol::JingleSessionManager> session_manager( 29 new protocol::JingleSessionManager( 30 transport_factory.Pass(), fetch_stun_relay_info)); 31 return session_manager.PassAs<protocol::SessionManager>(); 32 } 33 34 } // namespace remoting 35