| Index: remoting/protocol/ice_transport_factory.cc
|
| diff --git a/remoting/protocol/ice_transport_factory.cc b/remoting/protocol/ice_transport_factory.cc
|
| deleted file mode 100644
|
| index 19b14cba24ec545a5f6bcf1ea613111b443f2306..0000000000000000000000000000000000000000
|
| --- a/remoting/protocol/ice_transport_factory.cc
|
| +++ /dev/null
|
| @@ -1,93 +0,0 @@
|
| -// Copyright 2015 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/protocol/ice_transport_factory.h"
|
| -
|
| -#include "base/single_thread_task_runner.h"
|
| -#include "base/thread_task_runner_handle.h"
|
| -#include "remoting/protocol/ice_transport.h"
|
| -#include "third_party/webrtc/p2p/client/httpportallocator.h"
|
| -
|
| -namespace remoting {
|
| -namespace protocol {
|
| -
|
| -// Get fresh STUN/Relay configuration every hour.
|
| -static const int kJingleInfoUpdatePeriodSeconds = 3600;
|
| -
|
| -IceTransportFactory::IceTransportFactory(
|
| - SignalStrategy* signal_strategy,
|
| - scoped_ptr<cricket::HttpPortAllocatorBase> port_allocator,
|
| - const NetworkSettings& network_settings,
|
| - TransportRole role)
|
| - : signal_strategy_(signal_strategy),
|
| - port_allocator_(port_allocator.Pass()),
|
| - network_settings_(network_settings),
|
| - role_(role) {}
|
| -
|
| -IceTransportFactory::~IceTransportFactory() {
|
| - // This method may be called in response to a libjingle signal, so
|
| - // libjingle objects must be deleted asynchronously.
|
| - scoped_refptr<base::SingleThreadTaskRunner> task_runner =
|
| - base::ThreadTaskRunnerHandle::Get();
|
| - task_runner->DeleteSoon(FROM_HERE, port_allocator_.release());
|
| -}
|
| -
|
| -scoped_ptr<Transport> IceTransportFactory::CreateTransport() {
|
| - scoped_ptr<IceTransport> result(
|
| - new IceTransport(port_allocator_.get(), network_settings_, role_));
|
| -
|
| - EnsureFreshJingleInfo();
|
| -
|
| - // If there is a pending |jingle_info_request_| delay starting the new
|
| - // transport until the request is finished.
|
| - if (jingle_info_request_) {
|
| - on_jingle_info_callbacks_.push_back(result->GetCanStartClosure());
|
| - } else {
|
| - result->GetCanStartClosure().Run();
|
| - }
|
| -
|
| - return result.Pass();
|
| -}
|
| -
|
| -void IceTransportFactory::EnsureFreshJingleInfo() {
|
| - uint32 stun_or_relay_flags = NetworkSettings::NAT_TRAVERSAL_STUN |
|
| - NetworkSettings::NAT_TRAVERSAL_RELAY;
|
| - if (!(network_settings_.flags & stun_or_relay_flags) ||
|
| - jingle_info_request_) {
|
| - return;
|
| - }
|
| -
|
| - if (last_jingle_info_update_time_.is_null() ||
|
| - base::TimeTicks::Now() - last_jingle_info_update_time_ >
|
| - base::TimeDelta::FromSeconds(kJingleInfoUpdatePeriodSeconds)) {
|
| - jingle_info_request_.reset(new JingleInfoRequest(signal_strategy_));
|
| - jingle_info_request_->Send(base::Bind(
|
| - &IceTransportFactory::OnJingleInfo, base::Unretained(this)));
|
| - }
|
| -}
|
| -
|
| -void IceTransportFactory::OnJingleInfo(
|
| - const std::string& relay_token,
|
| - const std::vector<std::string>& relay_hosts,
|
| - const std::vector<rtc::SocketAddress>& stun_hosts) {
|
| - if (!relay_token.empty() && !relay_hosts.empty()) {
|
| - port_allocator_->SetRelayHosts(relay_hosts);
|
| - port_allocator_->SetRelayToken(relay_token);
|
| - }
|
| - if (!stun_hosts.empty()) {
|
| - port_allocator_->SetStunHosts(stun_hosts);
|
| - }
|
| -
|
| - jingle_info_request_.reset();
|
| - if ((!relay_token.empty() && !relay_hosts.empty()) || !stun_hosts.empty())
|
| - last_jingle_info_update_time_ = base::TimeTicks::Now();
|
| -
|
| - while (!on_jingle_info_callbacks_.empty()) {
|
| - on_jingle_info_callbacks_.begin()->Run();
|
| - on_jingle_info_callbacks_.pop_front();
|
| - }
|
| -}
|
| -
|
| -} // namespace protocol
|
| -} // namespace remoting
|
|
|