text: /*
   *  Copyright 2017 The WebRTC Project Authors. All rights reserved.
   *
   *  Use of this source code is governed by a BSD-style license
   *  that can be found in the LICENSE file in the root of the source
   *  tree. An additional intellectual property rights grant can be found
   *  in the file PATENTS.  All contributing project authors may
   *  be found in the AUTHORS file in the root of the source tree.
   */
  
  #include "p2p/client/turn_port_factory.h"
  
  #include <memory>
  #include <utility>
  
  #include "p2p/base/port_allocator.h"
  #include "p2p/base/turn_port.h"
  
  namespace cricket {
  
  TurnPortFactory::~TurnPortFactory() {}
  
  std::unique_ptr<Port> TurnPortFactory::Create(
      const CreateRelayPortArgs& args,
      rtc::AsyncPacketSocket* udp_socket) {
    auto port = TurnPort::CreateUnique(
        args.network_thread, args.socket_factory, args.network, udp_socket,
        args.username, args.password, *args.server_address,
        args.config->credentials, args.config->priority, args.origin,
        args.turn_customizer);
    port->SetTlsCertPolicy(args.config->tls_cert_policy);
    return std::move(port);
  }
  
  std::unique_ptr<Port> TurnPortFactory::Create(const CreateRelayPortArgs& args,
                                                int min_port,
                                                int max_port) {
    auto port = TurnPort::CreateUnique(
        args.network_thread, args.socket_factory, args.network, min_port,
        max_port, args.username, args.password, *args.server_address,
        args.config->credentials, args.config->priority, args.origin,
        args.config->tls_alpn_protocols, args.config->tls_elliptic_curves,
        args.turn_customizer, args.config->tls_cert_verifier);
    port->SetTlsCertPolicy(args.config->tls_cert_policy);
    return std::move(port);
  }
  
  }  // namespace cricket
  