Roll src/third_party/WebKit d9c6159:8139f33 (svn 201974:201975)
[chromium-blink-merge.git] / remoting / host / chromium_port_allocator_factory.cc
blob377c48bfc3867a1d144b61ad53dd46ad66085d56
1 // Copyright 2014 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.
5 #include "remoting/host/chromium_port_allocator_factory.h"
7 #include "base/logging.h"
8 #include "net/url_request/url_request_context_getter.h"
9 #include "remoting/protocol/chromium_port_allocator.h"
10 #include "remoting/protocol/network_settings.h"
12 namespace remoting {
14 ChromiumPortAllocatorFactory::ChromiumPortAllocatorFactory(
15 const protocol::NetworkSettings& network_settings,
16 scoped_refptr<net::URLRequestContextGetter> url_request_context_getter)
17 : network_settings_(network_settings),
18 url_request_context_getter_(url_request_context_getter) {
21 ChromiumPortAllocatorFactory::~ChromiumPortAllocatorFactory() {}
23 rtc::scoped_refptr<webrtc::PortAllocatorFactoryInterface>
24 ChromiumPortAllocatorFactory::Create(
25 const protocol::NetworkSettings& network_settings,
26 scoped_refptr<net::URLRequestContextGetter> url_request_context_getter) {
27 rtc::RefCountedObject<ChromiumPortAllocatorFactory>* allocator_factory =
28 new rtc::RefCountedObject<ChromiumPortAllocatorFactory>(
29 network_settings, url_request_context_getter);
30 return allocator_factory;
33 cricket::PortAllocator* ChromiumPortAllocatorFactory::CreatePortAllocator(
34 const std::vector<StunConfiguration>& stun_servers,
35 const std::vector<TurnConfiguration>& turn_configurations) {
36 scoped_ptr<protocol::ChromiumPortAllocator> port_allocator(
37 protocol::ChromiumPortAllocator::Create(url_request_context_getter_,
38 network_settings_));
40 std::vector<rtc::SocketAddress> stun_hosts;
41 typedef std::vector<StunConfiguration>::const_iterator StunIt;
42 for (StunIt stun_it = stun_servers.begin(); stun_it != stun_servers.end();
43 ++stun_it) {
44 stun_hosts.push_back(stun_it->server);
46 port_allocator->SetStunHosts(stun_hosts);
48 // TODO(aiguha): Figure out how to translate |turn_configurations| into
49 // turn hosts so we can set |port_allocator|'s relay hosts.
51 return port_allocator.release();
54 } // namespace remoting