| Index: remoting/host/chromium_port_allocator_factory.cc
|
| diff --git a/remoting/host/chromium_port_allocator_factory.cc b/remoting/host/chromium_port_allocator_factory.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..a7ed61e3ad8da32dca602977aa1f62e1904e364c
|
| --- /dev/null
|
| +++ b/remoting/host/chromium_port_allocator_factory.cc
|
| @@ -0,0 +1,55 @@
|
| +// Copyright 2014 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "remoting/host/chromium_port_allocator_factory.h"
|
| +
|
| +#include "base/logging.h"
|
| +#include "net/url_request/url_request_context_getter.h"
|
| +#include "remoting/protocol/chromium_port_allocator.h"
|
| +#include "remoting/protocol/network_settings.h"
|
| +
|
| +namespace remoting {
|
| +
|
| +ChromiumPortAllocatorFactory::ChromiumPortAllocatorFactory(
|
| + const protocol::NetworkSettings& network_settings,
|
| + scoped_refptr<net::URLRequestContextGetter> url_request_context_getter)
|
| + : network_settings_(network_settings),
|
| + url_request_context_getter_(url_request_context_getter) {
|
| +}
|
| +
|
| +ChromiumPortAllocatorFactory::~ChromiumPortAllocatorFactory() {}
|
| +
|
| +talk_base::scoped_refptr<webrtc::PortAllocatorFactoryInterface>
|
| +ChromiumPortAllocatorFactory::Create(
|
| + const protocol::NetworkSettings& network_settings,
|
| + scoped_refptr<net::URLRequestContextGetter> url_request_context_getter) {
|
| + talk_base::RefCountedObject<ChromiumPortAllocatorFactory>* allocator_factory =
|
| + new talk_base::RefCountedObject<ChromiumPortAllocatorFactory>(
|
| + network_settings, url_request_context_getter);
|
| + return allocator_factory;
|
| +}
|
| +
|
| +cricket::PortAllocator* ChromiumPortAllocatorFactory::CreatePortAllocator(
|
| + const std::vector<StunConfiguration>& stun_servers,
|
| + const std::vector<TurnConfiguration>& turn_configurations) {
|
| + scoped_ptr<protocol::ChromiumPortAllocator> port_allocator(
|
| + protocol::ChromiumPortAllocator::Create(url_request_context_getter_,
|
| + network_settings_));
|
| +
|
| + std::vector<talk_base::SocketAddress> stun_hosts;
|
| + typedef std::vector<StunConfiguration>::const_iterator StunIt;
|
| + for (StunIt stun_it = stun_servers.begin(); stun_it != stun_servers.end();
|
| + ++stun_it) {
|
| + stun_hosts.push_back(stun_it->server);
|
| + }
|
| + port_allocator->SetStunHosts(stun_hosts);
|
| +
|
| + // TODO(aiguha): Figure out how to translate |turn_configurations| into
|
| + // turn hosts so we can set |port_allocator|'s relay hosts.
|
| +
|
| + return port_allocator.release();
|
| +}
|
| +
|
| +} // namespace remoting
|
| +
|
|
|