# Copyright (c) 2016 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.

import("../webrtc.gni")

rtc_source_set("active_ice_controller_factory_interface") {
  sources = [ "base/active_ice_controller_factory_interface.h" ]
  deps = [
    ":active_ice_controller_interface",
    ":ice_agent_interface",
    ":ice_controller_factory_interface",
  ]
}

rtc_source_set("active_ice_controller_interface") {
  sources = [ "base/active_ice_controller_interface.h" ]
  deps = [
    ":connection",
    ":ice_switch_reason",
    ":ice_transport_internal",
    ":transport_description",
  ]
}

rtc_library("basic_async_resolver_factory") {
  sources = [
    "base/basic_async_resolver_factory.cc",
    "base/basic_async_resolver_factory.h",
  ]
  deps = [
    "../api:async_dns_resolver",
    "../rtc_base:async_dns_resolver",
    "../rtc_base:socket_address",
    "//third_party/abseil-cpp/absl/functional:any_invocable",
    "//third_party/abseil-cpp/absl/memory",
  ]
}

rtc_library("async_stun_tcp_socket") {
  sources = [
    "base/async_stun_tcp_socket.cc",
    "base/async_stun_tcp_socket.h",
  ]
  deps = [
    "../api/environment",
    "../api/transport:stun_types",
    "../rtc_base:async_packet_socket",
    "../rtc_base:async_tcp_socket",
    "../rtc_base:byte_order",
    "../rtc_base:checks",
    "../rtc_base:socket",
    "../rtc_base:socket_address",
    "../rtc_base/network:received_packet",
    "../rtc_base/network:sent_packet",
    "//third_party/abseil-cpp/absl/base:nullability",
    "//third_party/abseil-cpp/absl/memory",
  ]
}

rtc_library("basic_ice_controller") {
  sources = [
    "base/basic_ice_controller.cc",
    "base/basic_ice_controller.h",
  ]
  deps = [
    ":connection",
    ":connection_info",
    ":ice_controller_factory_interface",
    ":ice_controller_interface",
    ":ice_switch_reason",
    ":ice_transport_internal",
    ":p2p_constants",
    ":p2p_transport_channel_ice_field_trials",
    ":transport_description",
    "../api:candidate",
    "../api/environment",
    "../api/transport:enums",
    "../api/units:time_delta",
    "../api/units:timestamp",
    "../rtc_base:checks",
    "../rtc_base:ip_address",
    "../rtc_base:logging",
    "../rtc_base:net_helper",
    "../rtc_base:network",
    "../rtc_base:network_constants",
    "//third_party/abseil-cpp/absl/algorithm:container",
  ]
}

rtc_library("basic_packet_socket_factory") {
  sources = [
    "base/basic_packet_socket_factory.cc",
    "base/basic_packet_socket_factory.h",
  ]
  deps = [
    ":async_stun_tcp_socket",
    "../api:async_dns_resolver",
    "../api:packet_socket_factory",
    "../api/environment",
    "../rtc_base:async_dns_resolver",
    "../rtc_base:async_packet_socket",
    "../rtc_base:async_tcp_socket",
    "../rtc_base:async_udp_socket",
    "../rtc_base:checks",
    "../rtc_base:logging",
    "../rtc_base:socket",
    "../rtc_base:socket_adapters",
    "../rtc_base:socket_address",
    "../rtc_base:socket_factory",
    "../rtc_base:ssl_adapter",
    "../rtc_base/system:rtc_export",
    "//third_party/abseil-cpp/absl/memory",
  ]
}

rtc_library("basic_port_allocator") {
  sources = [
    "client/basic_port_allocator.cc",
    "client/basic_port_allocator.h",
  ]
  deps = [
    ":port",
    ":port_allocator",
    ":port_interface",
    ":relay_port_factory_interface",
    ":stun_port",
    ":tcp_port",
    ":turn_port",
    ":turn_port_factory",
    "../api:candidate",
    "../api:field_trials_view",
    "../api:local_network_access_permission",
    "../api:packet_socket_factory",
    "../api:sequence_checker",
    "../api:turn_customizer",
    "../api/environment",
    "../api/task_queue",
    "../api/task_queue:pending_task_safety_flag",
    "../api/transport:enums",
    "../api/units:time_delta",
    "../rtc_base:async_packet_socket",
    "../rtc_base:checks",
    "../rtc_base:event_tracer",
    "../rtc_base:ip_address",
    "../rtc_base:logging",
    "../rtc_base:macromagic",
    "../rtc_base:net_helper",
    "../rtc_base:net_helpers",
    "../rtc_base:network",
    "../rtc_base:network_constants",
    "../rtc_base:socket_address",
    "../rtc_base:stringutils",
    "../rtc_base/memory:always_valid_pointer",
    "../rtc_base/network:received_packet",
    "../rtc_base/system:rtc_export",
    "//third_party/abseil-cpp/absl/algorithm:container",
    "//third_party/abseil-cpp/absl/base:nullability",
    "//third_party/abseil-cpp/absl/memory",
    "//third_party/abseil-cpp/absl/strings:string_view",
  ]
}

rtc_source_set("candidate_pair_interface") {
  sources = [ "base/candidate_pair_interface.h" ]
  deps = [ "../api:candidate" ]
}

rtc_library("connection") {
  sources = [
    "base/connection.cc",
    "base/connection.h",
  ]
  deps = [
    ":candidate_pair_interface",
    ":connection_info",
    ":dtls_stun_piggyback_controller",
    ":dtls_utils",
    ":p2p_constants",
    ":p2p_transport_channel_ice_field_trials",
    ":port_interface",
    ":stun_request",
    ":transport_description",
    "../api:candidate",
    "../api:rtc_error",
    "../api:sequence_checker",
    "../api/environment",
    "../api/task_queue",
    "../api/transport:stun_types",
    "../api/units:data_rate",
    "../api/units:time_delta",
    "../api/units:timestamp",
    "../logging:ice_log",
    "../rtc_base:async_packet_socket",
    "../rtc_base:bitrate_tracker",
    "../rtc_base:byte_buffer",
    "../rtc_base:callback_list",
    "../rtc_base:checks",
    "../rtc_base:crypto_random",
    "../rtc_base:logging",
    "../rtc_base:macromagic",
    "../rtc_base:net_helper",
    "../rtc_base:net_helpers",
    "../rtc_base:network",
    "../rtc_base:network_constants",
    "../rtc_base:rtc_numerics",
    "../rtc_base:socket",
    "../rtc_base:socket_address",
    "../rtc_base:span_helpers",
    "../rtc_base:stringutils",
    "../rtc_base:timeutils",
    "../rtc_base:weak_ptr",
    "../rtc_base/network:received_packet",
    "../rtc_base/network:sent_packet",
    "../rtc_base/system:rtc_export",
    "//third_party/abseil-cpp/absl/algorithm:container",
    "//third_party/abseil-cpp/absl/base:core_headers",
    "//third_party/abseil-cpp/absl/functional:any_invocable",
    "//third_party/abseil-cpp/absl/strings:string_view",
  ]
}

rtc_library("connection_info") {
  sources = [
    "base/connection_info.cc",
    "base/connection_info.h",
  ]
  deps = [
    "../api:candidate",
    "../api/units:timestamp",
  ]
}

rtc_library("default_ice_transport_factory") {
  sources = [
    "base/default_ice_transport_factory.cc",
    "base/default_ice_transport_factory.h",
  ]
  deps = [
    ":basic_ice_controller",
    ":ice_controller_factory_interface",
    ":ice_controller_interface",
    ":p2p_transport_channel",
    "../api:ice_transport_interface",
    "../api:make_ref_counted",
    "../api:scoped_refptr",
    "../api:sequence_checker",
    "../rtc_base:macromagic",
  ]
}

rtc_library("dtls_transport") {
  sources = [
    "dtls/dtls_transport.cc",
    "dtls/dtls_transport.h",
  ]
  deps = [
    ":dtls_stun_piggyback_controller",
    ":dtls_transport_internal",
    ":dtls_utils",
    ":ice_transport_internal",
    ":packet_transport_internal",
    "../api:dtls_transport_interface",
    "../api:field_trials_view",
    "../api:ice_transport_interface",
    "../api:make_ref_counted",
    "../api:rtc_error",
    "../api:scoped_refptr",
    "../api:sequence_checker",
    "../api/crypto:options",
    "../api/environment",
    "../api/rtc_event_log",
    "../api/task_queue:pending_task_safety_flag",
    "../api/transport:ecn_marking",
    "../api/units:time_delta",
    "../api/units:timestamp",
    "../logging:ice_log",
    "../rtc_base:async_packet_socket",
    "../rtc_base:buffer",
    "../rtc_base:buffer_queue",
    "../rtc_base:checks",
    "../rtc_base:logging",
    "../rtc_base:macromagic",
    "../rtc_base:network_route",
    "../rtc_base:socket",
    "../rtc_base:socket_address",
    "../rtc_base:ssl",
    "../rtc_base:ssl_adapter",
    "../rtc_base:stream",
    "../rtc_base:stringutils",
    "../rtc_base:threading",
    "../rtc_base/network:received_packet",
    "../rtc_base/network:sent_packet",
    "../rtc_base/system:no_unique_address",
    "../system_wrappers",
    "../system_wrappers:metrics",
    "//third_party/abseil-cpp/absl/functional:any_invocable",
    "//third_party/abseil-cpp/absl/memory",
    "//third_party/abseil-cpp/absl/strings:string_view",
  ]
}

rtc_source_set("dtls_transport_factory") {
  sources = [ "dtls/dtls_transport_factory.h" ]
  deps = [
    "../api:ice_transport_interface",
    "../api:scoped_refptr",
    "../api/crypto:options",
    "../rtc_base:ssl_adapter",
  ]
}

rtc_library("dtls_transport_internal") {
  sources = [
    "dtls/dtls_transport_internal.cc",
    "dtls/dtls_transport_internal.h",
  ]
  deps = [
    ":ice_transport_internal",
    ":packet_transport_internal",
    "../api:dtls_transport_interface",
    "../api:rtc_error",
    "../api:scoped_refptr",
    "../api/task_queue",
    "../rtc_base:buffer",
    "../rtc_base:callback_list",
    "../rtc_base:checks",
    "../rtc_base:ssl",
    "../rtc_base:ssl_adapter",
    "//third_party/abseil-cpp/absl/functional:any_invocable",
    "//third_party/abseil-cpp/absl/strings:string_view",
  ]
}

rtc_source_set("ice_agent_interface") {
  sources = [ "base/ice_agent_interface.h" ]
  deps = [
    ":connection",
    ":ice_switch_reason",
    ":transport_description",
    "../api/units:timestamp",
  ]
}

rtc_library("ice_controller_interface") {
  sources = [
    "base/ice_controller_interface.cc",
    "base/ice_controller_interface.h",
  ]
  deps = [
    ":connection",
    ":ice_switch_reason",
    ":ice_transport_internal",
    ":transport_description",
    "../api/units:time_delta",
    "../api/units:timestamp",
    "../rtc_base:checks",
    "../rtc_base/system:rtc_export",
  ]
}

rtc_source_set("ice_controller_factory_interface") {
  sources = [ "base/ice_controller_factory_interface.h" ]
  deps = [
    ":connection",
    ":ice_controller_interface",
    ":ice_transport_internal",
    ":p2p_transport_channel_ice_field_trials",
    ":transport_description",
    "../api/environment",
  ]
}

rtc_library("ice_credentials_iterator") {
  sources = [
    "base/ice_credentials_iterator.cc",
    "base/ice_credentials_iterator.h",
  ]
  deps = [
    ":p2p_constants",
    ":transport_description",
    "../rtc_base:crypto_random",
  ]
}

rtc_library("ice_switch_reason") {
  sources = [
    "base/ice_switch_reason.cc",
    "base/ice_switch_reason.h",
  ]
  deps = [ "../rtc_base/system:rtc_export" ]
}

rtc_library("ice_transport_internal") {
  sources = [
    "base/ice_transport_internal.cc",
    "base/ice_transport_internal.h",
  ]
  deps = [
    ":candidate_pair_interface",
    ":connection_info",
    ":dtls_stun_piggyback_controller",
    ":p2p_constants",
    ":packet_transport_internal",
    ":port",
    ":stun_dictionary",
    ":transport_description",
    "../api:candidate",
    "../api:peer_connection_interface",
    "../api:rtc_error",
    "../api/task_queue",
    "../api/transport:enums",
    "../api/units:time_delta",
    "../rtc_base:callback_list",
    "../rtc_base:checks",
    "../rtc_base:net_helper",
    "../rtc_base:network_constants",
    "../rtc_base/system:rtc_export",
    "//third_party/abseil-cpp/absl/functional:any_invocable",
    "//third_party/abseil-cpp/absl/strings:string_view",
  ]
}

rtc_library("p2p_constants") {
  sources = [
    "base/p2p_constants.cc",
    "base/p2p_constants.h",
  ]
  deps = [
    "../api/units:data_rate",
    "../api/units:data_size",
    "../api/units:time_delta",
    "../rtc_base/system:plan_b_only",
    "../rtc_base/system:rtc_export",
  ]
}

rtc_library("p2p_transport_channel") {
  sources = [
    "base/p2p_transport_channel.cc",
    "base/p2p_transport_channel.h",
  ]
  deps = [
    ":active_ice_controller_factory_interface",
    ":active_ice_controller_interface",
    ":candidate_pair_interface",
    ":connection",
    ":connection_info",
    ":dtls_stun_piggyback_controller",
    ":ice_agent_interface",
    ":ice_controller_factory_interface",
    ":ice_switch_reason",
    ":ice_transport_internal",
    ":p2p_constants",
    ":p2p_transport_channel_ice_field_trials",
    ":port",
    ":port_allocator",
    ":port_interface",
    ":stun_dictionary",
    ":transport_description",
    ":wrapping_active_ice_controller",
    "../api:async_dns_resolver",
    "../api:candidate",
    "../api:field_trials_view",
    "../api:ice_transport_interface",
    "../api:local_network_access_permission",
    "../api:rtc_error",
    "../api:sequence_checker",
    "../api/environment",
    "../api/task_queue",
    "../api/transport:enums",
    "../api/transport:stun_types",
    "../api/units:time_delta",
    "../api/units:timestamp",
    "../logging:ice_log",
    "../rtc_base:async_packet_socket",
    "../rtc_base:checks",
    "../rtc_base:dscp",
    "../rtc_base:event_tracer",
    "../rtc_base:ip_address",
    "../rtc_base:logging",
    "../rtc_base:macromagic",
    "../rtc_base:net_helper",
    "../rtc_base:net_helpers",
    "../rtc_base:network",
    "../rtc_base:network_constants",
    "../rtc_base:network_route",
    "../rtc_base:socket",
    "../rtc_base:socket_address",
    "../rtc_base:stringutils",
    "../rtc_base/experiments:field_trial_parser",
    "../rtc_base/network:received_packet",
    "../rtc_base/network:sent_packet",
    "../rtc_base/system:no_unique_address",
    "../rtc_base/system:rtc_export",
    "../rtc_base/task_utils:repeating_task",
    "../system_wrappers:metrics",
    "//third_party/abseil-cpp/absl/algorithm:container",
    "//third_party/abseil-cpp/absl/functional:any_invocable",
    "//third_party/abseil-cpp/absl/memory",
    "//third_party/abseil-cpp/absl/strings",
    "//third_party/abseil-cpp/absl/strings:string_view",
  ]
}

rtc_source_set("p2p_transport_channel_ice_field_trials") {
  sources = [ "base/p2p_transport_channel_ice_field_trials.h" ]
}

rtc_library("packet_transport_internal") {
  sources = [
    "base/packet_transport_internal.cc",
    "base/packet_transport_internal.h",
  ]
  deps = [
    "../api:sequence_checker",
    "../api/task_queue",
    "../rtc_base:async_packet_socket",
    "../rtc_base:callback_list",
    "../rtc_base:checks",
    "../rtc_base:macromagic",
    "../rtc_base:network_route",
    "../rtc_base:socket",
    "../rtc_base/network:received_packet",
    "../rtc_base/network:sent_packet",
    "../rtc_base/system:rtc_export",
    "//third_party/abseil-cpp/absl/functional:any_invocable",
  ]
}

rtc_library("port") {
  sources = [
    "base/port.cc",
    "base/port.h",
  ]
  deps = [
    ":candidate_pair_interface",
    ":connection",
    ":p2p_constants",
    ":port_interface",
    ":stun_request",
    ":transport_description",
    "../api:candidate",
    "../api:local_network_access_permission",
    "../api:packet_socket_factory",
    "../api:sequence_checker",
    "../api/environment",
    "../api/task_queue",
    "../api/transport:stun_types",
    "../api/units:time_delta",
    "../rtc_base:async_packet_socket",
    "../rtc_base:byte_buffer",
    "../rtc_base:callback_list",
    "../rtc_base:checks",
    "../rtc_base:crypto_random",
    "../rtc_base:dscp",
    "../rtc_base:event_tracer",
    "../rtc_base:ip_address",
    "../rtc_base:logging",
    "../rtc_base:macromagic",
    "../rtc_base:mdns_responder_interface",
    "../rtc_base:net_helper",
    "../rtc_base:net_helpers",
    "../rtc_base:network",
    "../rtc_base:socket_address",
    "../rtc_base:span_helpers",
    "../rtc_base:stringutils",
    "../rtc_base:weak_ptr",
    "../rtc_base/containers:flat_map",
    "../rtc_base/network:received_packet",
    "../rtc_base/network:sent_packet",
    "../rtc_base/system:rtc_export",
    "//third_party/abseil-cpp/absl/algorithm:container",
    "//third_party/abseil-cpp/absl/functional:any_invocable",
    "//third_party/abseil-cpp/absl/memory",
    "//third_party/abseil-cpp/absl/strings",
    "//third_party/abseil-cpp/absl/strings:string_view",
  ]
}

rtc_library("port_allocator") {
  sources = [
    "base/port_allocator.cc",
    "base/port_allocator.h",
  ]
  deps = [
    ":ice_credentials_iterator",
    ":port",
    ":port_interface",
    ":transport_description",
    "../api:candidate",
    "../api:sequence_checker",
    "../api/transport:enums",
    "../api/units:time_delta",
    "../rtc_base:callback_list",
    "../rtc_base:checks",
    "../rtc_base:crypto_random",
    "../rtc_base:net_helper",
    "../rtc_base:network",
    "../rtc_base:socket_address",
    "../rtc_base:ssl",
    "../rtc_base/system:rtc_export",
    "//third_party/abseil-cpp/absl/functional:any_invocable",
    "//third_party/abseil-cpp/absl/strings:string_view",
  ]
}

rtc_library("port_interface") {
  sources = [
    "base/port_interface.cc",
    "base/port_interface.h",
  ]
  deps = [
    ":transport_description",
    "../api:candidate",
    "../api:packet_socket_factory",
    "../api/task_queue",
    "../rtc_base:async_packet_socket",
    "../rtc_base:dscp",
    "../rtc_base:net_helper",
    "../rtc_base:network",
    "../rtc_base:socket",
    "../rtc_base:socket_address",
    "../rtc_base:span_helpers",
    "../rtc_base/network:sent_packet",
    "//third_party/abseil-cpp/absl/base:core_headers",
    "//third_party/abseil-cpp/absl/functional:any_invocable",
    "//third_party/abseil-cpp/absl/strings:string_view",
  ]
}

rtc_library("stun_dictionary") {
  sources = [
    "base/stun_dictionary.cc",
    "base/stun_dictionary.h",
  ]
  deps = [
    "../api:rtc_error",
    "../api/transport:stun_types",
    "../rtc_base:byte_buffer",
    "../rtc_base:logging",
  ]
}

rtc_library("dtls_utils") {
  sources = [
    "dtls/dtls_utils.cc",
    "dtls/dtls_utils.h",
  ]
  deps = [
    "../rtc_base:buffer",
    "../rtc_base:checks",
    "../rtc_base:crc32",
    "//third_party/abseil-cpp/absl/container:flat_hash_set",
  ]
}

rtc_library("dtls_stun_piggyback_controller") {
  sources = [
    "dtls/dtls_stun_piggyback_callbacks.h",
    "dtls/dtls_stun_piggyback_controller.cc",
    "dtls/dtls_stun_piggyback_controller.h",
  ]
  deps = [
    ":dtls_utils",
    "../api:sequence_checker",
    "../api/transport:stun_types",
    "../rtc_base:checks",
    "../rtc_base:logging",
    "../rtc_base:macromagic",
    "../rtc_base:stringutils",
    "../rtc_base/network:received_packet",
    "../rtc_base/system:no_unique_address",
    "//third_party/abseil-cpp/absl/container:flat_hash_set",
    "//third_party/abseil-cpp/absl/functional:any_invocable",
    "//third_party/abseil-cpp/absl/strings",
    "//third_party/abseil-cpp/absl/strings:str_format",
    "//third_party/abseil-cpp/absl/strings:string_view",
  ]
}

rtc_library("stun_port") {
  sources = [
    "base/stun_port.cc",
    "base/stun_port.h",
  ]
  deps = [
    ":connection",
    ":p2p_constants",
    ":port",
    ":port_interface",
    ":stun_request",
    "../api:async_dns_resolver",
    "../api:candidate",
    "../api:field_trials_view",
    "../api:local_network_access_permission",
    "../api:packet_socket_factory",
    "../api/transport:stun_types",
    "../api/units:time_delta",
    "../api/units:timestamp",
    "../rtc_base:async_packet_socket",
    "../rtc_base:checks",
    "../rtc_base:dscp",
    "../rtc_base:ip_address",
    "../rtc_base:logging",
    "../rtc_base:net_helper",
    "../rtc_base:network",
    "../rtc_base:network_constants",
    "../rtc_base:socket",
    "../rtc_base:socket_address",
    "../rtc_base:stringutils",
    "../rtc_base/network:received_packet",
    "../rtc_base/network:sent_packet",
    "../rtc_base/system:rtc_export",
    "../system_wrappers:metrics",
    "//third_party/abseil-cpp/absl/memory",
    "//third_party/abseil-cpp/absl/strings:string_view",
  ]
}

rtc_library("stun_request") {
  sources = [
    "base/stun_request.cc",
    "base/stun_request.h",
  ]
  deps = [
    "../api:sequence_checker",
    "../api/environment",
    "../api/task_queue",
    "../api/task_queue:pending_task_safety_flag",
    "../api/transport:stun_types",
    "../api/units:time_delta",
    "../api/units:timestamp",
    "../rtc_base:byte_buffer",
    "../rtc_base:checks",
    "../rtc_base:logging",
    "../rtc_base:macromagic",
    "../rtc_base:stringutils",
    "//third_party/abseil-cpp/absl/memory",
    "//third_party/abseil-cpp/absl/strings:string_view",
  ]
}

rtc_library("tcp_port") {
  sources = [
    "base/tcp_port.cc",
    "base/tcp_port.h",
  ]
  deps = [
    ":connection",
    ":connection_info",
    ":p2p_constants",
    ":port",
    ":port_interface",
    ":stun_request",
    "../api:candidate",
    "../api:packet_socket_factory",
    "../api:sequence_checker",
    "../api/environment",
    "../api/task_queue:pending_task_safety_flag",
    "../api/transport:stun_types",
    "../api/units:time_delta",
    "../api/units:timestamp",
    "../rtc_base:async_packet_socket",
    "../rtc_base:checks",
    "../rtc_base:ip_address",
    "../rtc_base:logging",
    "../rtc_base:net_helper",
    "../rtc_base:socket",
    "../rtc_base:socket_address",
    "../rtc_base:weak_ptr",
    "../rtc_base/containers:flat_map",
    "../rtc_base/network:received_packet",
    "../rtc_base/network:sent_packet",
    "//third_party/abseil-cpp/absl/algorithm:container",
    "//third_party/abseil-cpp/absl/memory",
    "//third_party/abseil-cpp/absl/strings:string_view",
  ]
}

rtc_library("transport_description") {
  sources = [
    "base/transport_description.cc",
    "base/transport_description.h",
  ]
  deps = [
    ":p2p_constants",
    "../api:rtc_error",
    "../rtc_base:checks",
    "../rtc_base:logging",
    "../rtc_base:ssl",
    "../rtc_base:stringutils",
    "../rtc_base/system:rtc_export",
    "//third_party/abseil-cpp/absl/algorithm:container",
    "//third_party/abseil-cpp/absl/strings",
    "//third_party/abseil-cpp/absl/strings:string_view",
  ]
}

rtc_library("transport_description_factory") {
  sources = [
    "base/transport_description_factory.cc",
    "base/transport_description_factory.h",
  ]
  deps = [
    ":ice_credentials_iterator",
    ":transport_description",
    "../api:field_trials_view",
    "../api:scoped_refptr",
    "../rtc_base:checks",
    "../rtc_base:logging",
    "../rtc_base:ssl",
    "../rtc_base:ssl_adapter",
  ]
}

rtc_source_set("transport_info") {
  sources = [ "base/transport_info.h" ]
  deps = [ ":transport_description" ]
}

rtc_library("turn_port") {
  sources = [
    "base/turn_port.cc",
    "base/turn_port.h",
  ]
  deps = [
    ":connection",
    ":p2p_constants",
    ":port",
    ":port_allocator",
    ":port_interface",
    ":relay_port_factory_interface",
    ":stun_request",
    "../api:async_dns_resolver",
    "../api:candidate",
    "../api:local_network_access_permission",
    "../api:packet_socket_factory",
    "../api:scoped_refptr",
    "../api:turn_customizer",
    "../api/task_queue",
    "../api/task_queue:pending_task_safety_flag",
    "../api/transport:stun_types",
    "../api/units:time_delta",
    "../rtc_base:async_packet_socket",
    "../rtc_base:byte_buffer",
    "../rtc_base:byte_order",
    "../rtc_base:callback_list",
    "../rtc_base:checks",
    "../rtc_base:dscp",
    "../rtc_base:ip_address",
    "../rtc_base:logging",
    "../rtc_base:net_helper",
    "../rtc_base:network",
    "../rtc_base:socket",
    "../rtc_base:socket_address",
    "../rtc_base:ssl",
    "../rtc_base:stringutils",
    "../rtc_base/network:received_packet",
    "../rtc_base/network:sent_packet",
    "../system_wrappers:metrics",
    "//third_party/abseil-cpp/absl/algorithm:container",
    "//third_party/abseil-cpp/absl/base:core_headers",
    "//third_party/abseil-cpp/absl/memory",
    "//third_party/abseil-cpp/absl/strings",
    "//third_party/abseil-cpp/absl/strings:string_view",
  ]
}

rtc_library("turn_port_factory") {
  sources = [
    "client/turn_port_factory.cc",
    "client/turn_port_factory.h",
  ]
  deps = [
    ":port",
    ":port_allocator",
    ":relay_port_factory_interface",
    ":turn_port",
    "../rtc_base:async_packet_socket",
  ]
}

rtc_source_set("relay_port_factory_interface") {
  sources = [ "client/relay_port_factory_interface.h" ]
  deps = [
    ":port",
    ":port_allocator",
    "../api:local_network_access_permission",
    "../api:packet_socket_factory",
    "../api/environment",
    "../api/task_queue",
    "../rtc_base:async_packet_socket",
    "../rtc_base:network",
  ]
}

rtc_library("wrapping_active_ice_controller") {
  sources = [
    "base/wrapping_active_ice_controller.cc",
    "base/wrapping_active_ice_controller.h",
  ]
  deps = [
    ":active_ice_controller_interface",
    ":basic_ice_controller",
    ":connection",
    ":ice_agent_interface",
    ":ice_controller_factory_interface",
    ":ice_controller_interface",
    ":ice_switch_reason",
    ":ice_transport_internal",
    ":transport_description",
    "../api:sequence_checker",
    "../api/task_queue",
    "../api/task_queue:pending_task_safety_flag",
    "../api/units:time_delta",
    "../rtc_base:checks",
    "../rtc_base:logging",
    "../rtc_base:macromagic",
    "../rtc_base:threading",
  ]
}

if (rtc_include_tests) {
  rtc_library("fake_ice_transport") {
    testonly = true
    visibility = [ "*" ]
    sources = [
      "base/fake_ice_transport.h",
      "test/fake_ice_transport.h",
    ]
    deps = [
      ":candidate_pair_interface",
      ":connection_info",
      ":dtls_stun_piggyback_controller",
      ":ice_transport_internal",
      ":port",
      ":transport_description",
      "../api:candidate",
      "../api:field_trials",
      "../api:ice_transport_interface",
      "../api:sequence_checker",
      "../api/environment",
      "../api/task_queue",
      "../api/task_queue:pending_task_safety_flag",
      "../api/transport:enums",
      "../api/transport:stun_types",
      "../api/units:time_delta",
      "../rtc_base:async_packet_socket",
      "../rtc_base:byte_buffer",
      "../rtc_base:checks",
      "../rtc_base:copy_on_write_buffer",
      "../rtc_base:logging",
      "../rtc_base:macromagic",
      "../rtc_base:network_route",
      "../rtc_base:socket",
      "../rtc_base:span_helpers",
      "../rtc_base:task_queue_for_test",
      "../rtc_base:timeutils",
      "../rtc_base/network:received_packet",
      "../rtc_base/network:sent_packet",
      "../test:create_test_field_trials",
      "//third_party/abseil-cpp/absl/algorithm:container",
      "//third_party/abseil-cpp/absl/functional:any_invocable",
      "//third_party/abseil-cpp/absl/strings:string_view",
    ]
  }

  rtc_library("fake_port_allocator") {
    testonly = true
    visibility = [ "*" ]
    sources = [
      "base/fake_port_allocator.h",
      "test/fake_port_allocator.h",
    ]
    deps = [
      ":basic_packet_socket_factory",
      ":port",
      ":port_allocator",
      ":port_interface",
      ":stun_port",
      "../api:candidate",
      "../api:packet_socket_factory",
      "../api/environment",
      "../api/task_queue",
      "../rtc_base:async_packet_socket",
      "../rtc_base:checks",
      "../rtc_base:ip_address",
      "../rtc_base:net_helpers",
      "../rtc_base:net_test_helpers",
      "../rtc_base:network",
      "../rtc_base:socket_factory",
      "../rtc_base:task_queue_for_test",
      "../rtc_base:weak_ptr",
      "//third_party/abseil-cpp/absl/base:nullability",
      "//third_party/abseil-cpp/absl/functional:any_invocable",
      "//third_party/abseil-cpp/absl/memory",
      "//third_party/abseil-cpp/absl/strings:string_view",
    ]
  }

  rtc_library("p2p_test_utils") {
    testonly = true
    visibility = [ "*" ]
    sources = [
      "base/mock_ice_agent.h",
      "base/mock_ice_controller.h",
      "base/mock_ice_transport.h",
      "dtls/fake_dtls_transport.h",
      "test/fake_packet_transport.h",
      "test/mock_active_ice_controller.h",
      "test/mock_dns_resolving_packet_socket_factory.h",
      "test/mock_ice_agent.h",
      "test/mock_ice_controller.h",
      "test/mock_ice_transport.h",
      "test/nat_server.cc",
      "test/nat_server.h",
      "test/nat_socket_factory.cc",
      "test/nat_socket_factory.h",
      "test/nat_types.cc",
      "test/nat_types.h",
      "test/test_stun_server.cc",
      "test/test_stun_server.h",
      "test/test_turn_customizer.h",
      "test/test_turn_server.h",
    ]
    deps = [
      ":active_ice_controller_factory_interface",
      ":active_ice_controller_interface",
      ":basic_packet_socket_factory",
      ":candidate_pair_interface",
      ":connection",
      ":dtls_transport_internal",
      ":fake_ice_transport",
      ":ice_agent_interface",
      ":ice_controller_factory_interface",
      ":ice_controller_interface",
      ":ice_switch_reason",
      ":ice_transport_internal",
      ":p2p_server_utils",
      ":packet_transport_internal",
      ":port_interface",
      ":transport_description",
      "../api:async_dns_resolver",
      "../api:candidate",
      "../api:dtls_transport_interface",
      "../api:ice_transport_interface",
      "../api:mock_async_dns_resolver",
      "../api:rtc_error",
      "../api:scoped_refptr",
      "../api:sequence_checker",
      "../api:turn_customizer",
      "../api/environment",
      "../api/task_queue",
      "../api/task_queue:pending_task_safety_flag",
      "../api/transport:ecn_marking",
      "../api/transport:enums",
      "../api/transport:stun_types",
      "../api/units:time_delta",
      "../api/units:timestamp",
      "../rtc_base:async_packet_socket",
      "../rtc_base:async_udp_socket",
      "../rtc_base:buffer",
      "../rtc_base:byte_order",
      "../rtc_base:checks",
      "../rtc_base:copy_on_write_buffer",
      "../rtc_base:ip_address",
      "../rtc_base:logging",
      "../rtc_base:net_helper",
      "../rtc_base:net_helpers",
      "../rtc_base:network_route",
      "../rtc_base:rtc_base_tests_utils",
      "../rtc_base:socket",
      "../rtc_base:socket_adapters",
      "../rtc_base:socket_address",
      "../rtc_base:socket_address_pair",
      "../rtc_base:socket_factory",
      "../rtc_base:socket_server",
      "../rtc_base:ssl",
      "../rtc_base:ssl_adapter",
      "../rtc_base:threading",
      "../rtc_base/network:received_packet",
      "../rtc_base/network:sent_packet",
      "../rtc_base/synchronization:mutex",
      "../test:run_loop",
      "../test:test_support",
      "//third_party/abseil-cpp/absl/base:core_headers",
      "//third_party/abseil-cpp/absl/memory",
      "//third_party/abseil-cpp/absl/strings:string_view",
    ]
  }

  rtc_library("rtc_p2p_unittests") {
    testonly = true

    sources = [
      "base/async_stun_tcp_socket_unittest.cc",
      "base/connection_unittest.cc",
      "base/ice_credentials_iterator_unittest.cc",
      "base/local_network_access_port_unittest.cc",
      "base/p2p_transport_channel_unittest.cc",
      "base/packet_transport_internal_unittest.cc",
      "base/port_allocator_unittest.cc",
      "base/port_unittest.cc",
      "base/stun_dictionary_unittest.cc",
      "base/stun_port_unittest.cc",
      "base/stun_request_unittest.cc",
      "base/tcp_port_unittest.cc",
      "base/transport_description_factory_unittest.cc",
      "base/transport_description_unittest.cc",
      "base/turn_port_unittest.cc",
      "base/wrapping_active_ice_controller_unittest.cc",
      "client/basic_port_allocator_unittest.cc",
      "dtls/dtls_ice_integration_fixture.h",
      "dtls/dtls_ice_integration_test.cc",
      "dtls/dtls_stun_piggyback_controller_unittest.cc",
      "dtls/dtls_transport_unittest.cc",
      "dtls/dtls_utils_unittest.cc",
      "test/fake_ice_lite_agent.h",
      "test/nat_unittest.cc",
      "test/stun_server_unittest.cc",
      "test/turn_server_unittest.cc",
    ]
    deps = [
      ":active_ice_controller_factory_interface",
      ":active_ice_controller_interface",
      ":async_stun_tcp_socket",
      ":basic_ice_controller",
      ":basic_packet_socket_factory",
      ":basic_port_allocator",
      ":candidate_pair_interface",
      ":connection",
      ":connection_info",
      ":dtls_stun_piggyback_controller",
      ":dtls_transport",
      ":dtls_transport_internal",
      ":dtls_utils",
      ":fake_ice_transport",
      ":fake_port_allocator",
      ":ice_controller_factory_interface",
      ":ice_controller_interface",
      ":ice_credentials_iterator",
      ":ice_switch_reason",
      ":ice_transport_internal",
      ":p2p_constants",
      ":p2p_server_utils",
      ":p2p_test_utils",
      ":p2p_transport_channel",
      ":p2p_transport_channel_ice_field_trials",
      ":packet_transport_internal",
      ":port",
      ":port_allocator",
      ":port_interface",
      ":relay_port_factory_interface",
      ":stun_dictionary",
      ":stun_port",
      ":stun_request",
      ":tcp_port",
      ":test_port",
      ":transport_description",
      ":transport_description_factory",
      ":turn_port",
      ":wrapping_active_ice_controller",
      "../api:async_dns_resolver",
      "../api:candidate",
      "../api:create_network_emulation_manager",
      "../api:dtls_transport_interface",
      "../api:field_trials",
      "../api:field_trials_view",
      "../api:ice_transport_interface",
      "../api:local_network_access_permission",
      "../api:make_ref_counted",
      "../api:mock_async_dns_resolver",
      "../api:mock_local_network_access_permission",
      "../api:mock_packet_socket_factory",
      "../api:network_emulation_manager_api",
      "../api:packet_socket_factory",
      "../api:rtc_error",
      "../api:rtc_error_matchers",
      "../api:scoped_refptr",
      "../api:sequence_checker",
      "../api:simulated_network_api",
      "../api:time_controller",
      "../api/crypto:options",
      "../api/environment",
      "../api/environment:environment_factory",
      "../api/numerics",
      "../api/task_queue",
      "../api/task_queue:pending_task_safety_flag",
      "../api/transport:ecn_marking",
      "../api/transport:enums",
      "../api/transport:stun_types",
      "../api/units:data_rate",
      "../api/units:time_delta",
      "../api/units:timestamp",
      "../rtc_base:async_packet_socket",
      "../rtc_base:async_tcp_socket",
      "../rtc_base:async_udp_socket",
      "../rtc_base:buffer",
      "../rtc_base:byte_buffer",
      "../rtc_base:byte_order",
      "../rtc_base:checks",
      "../rtc_base:copy_on_write_buffer",
      "../rtc_base:crypto_random",
      "../rtc_base:dscp",
      "../rtc_base:ip_address",
      "../rtc_base:logging",
      "../rtc_base:mdns_responder_interface",
      "../rtc_base:net_helper",
      "../rtc_base:net_helpers",
      "../rtc_base:net_test_helpers",
      "../rtc_base:network",
      "../rtc_base:network_constants",
      "../rtc_base:network_route",
      "../rtc_base:random",
      "../rtc_base:rtc_base_tests_utils",
      "../rtc_base:rtc_event",
      "../rtc_base:socket",
      "../rtc_base:socket_address",
      "../rtc_base:socket_factory",
      "../rtc_base:socket_server",
      "../rtc_base:ssl",
      "../rtc_base:ssl_adapter",
      "../rtc_base:stream",
      "../rtc_base:testclient",
      "../rtc_base:threading",
      "../rtc_base:timeutils",
      "../rtc_base/network:received_packet",
      "../rtc_base/network:sent_packet",
      "../rtc_base/system:unused",
      "../system_wrappers:metrics",
      "../test:create_test_environment",
      "../test:create_test_field_trials",
      "../test:run_loop",
      "../test:test_support",
      "../test:wait_until",
      "../test/time_controller",
      "//third_party/abseil-cpp/absl/algorithm:container",
      "//third_party/abseil-cpp/absl/container:flat_hash_set",
      "//third_party/abseil-cpp/absl/flags:flag",
      "//third_party/abseil-cpp/absl/functional:any_invocable",
      "//third_party/abseil-cpp/absl/memory",
      "//third_party/abseil-cpp/absl/strings",
      "//third_party/abseil-cpp/absl/strings:str_format",
      "//third_party/abseil-cpp/absl/strings:string_view",
    ]
  }

  rtc_test("dtls_ice_integration_bench") {
    testonly = true

    sources = [
      "dtls/dtls_ice_integration_bench.cc",
      "dtls/dtls_ice_integration_fixture.h",
      "test/fake_ice_lite_agent.h",
    ]
    deps = [
      ":active_ice_controller_factory_interface",
      ":active_ice_controller_interface",
      ":basic_packet_socket_factory",
      ":basic_port_allocator",
      ":connection",
      ":dtls_transport",
      ":fake_ice_transport",
      ":ice_switch_reason",
      ":ice_transport_internal",
      ":p2p_transport_channel",
      ":port_allocator",
      ":transport_description",
      "../api:candidate",
      "../api:create_network_emulation_manager",
      "../api:field_trials",
      "../api:ice_transport_interface",
      "../api:make_ref_counted",
      "../api:network_emulation_manager_api",
      "../api:scoped_refptr",
      "../api:simulated_network_api",
      "../api:time_controller",
      "../api/crypto:options",
      "../api/environment",
      "../api/environment:environment_factory",
      "../api/numerics",
      "../api/task_queue",
      "../api/task_queue:pending_task_safety_flag",
      "../api/units:data_rate",
      "../api/units:time_delta",
      "../api/units:timestamp",
      "../rtc_base:async_packet_socket",
      "../rtc_base:checks",
      "../rtc_base:logging",
      "../rtc_base:network",
      "../rtc_base:rtc_base_tests_utils",
      "../rtc_base:socket_address",
      "../rtc_base:ssl",
      "../rtc_base:ssl_adapter",
      "../rtc_base:threading",
      "../test:create_test_field_trials",
      "../test:run_loop",
      "../test:test_support",
      "../test:wait_until",
      "../test/time_controller",
      "//third_party/abseil-cpp/absl/algorithm:container",
      "//third_party/abseil-cpp/absl/container:flat_hash_set",
      "//third_party/abseil-cpp/absl/flags:flag",
      "//third_party/abseil-cpp/absl/functional:any_invocable",
      "//third_party/abseil-cpp/absl/memory",
      "//third_party/abseil-cpp/absl/strings",
      "//third_party/abseil-cpp/absl/strings:str_format",
      "//third_party/abseil-cpp/absl/strings:string_view",
    ]
  }
}

rtc_library("test_port") {
  testonly = true
  sources = [
    "test/test_port.cc",
    "test/test_port.h",
  ]
  deps = [
    ":connection",
    ":p2p_constants",
    ":port",
    ":port_interface",
    "../api:candidate",
    "../api/transport:stun_types",
    "../rtc_base:async_packet_socket",
    "../rtc_base:buffer",
    "../rtc_base:byte_buffer",
    "../rtc_base:net_helper",
    "../rtc_base:network",
    "../rtc_base:socket",
    "../rtc_base:socket_address",
    "../rtc_base/network:sent_packet",
    "//third_party/abseil-cpp/absl/memory",
    "//third_party/abseil-cpp/absl/strings:string_view",
  ]
}

rtc_library("p2p_server_utils") {
  testonly = true
  sources = [
    "test/stun_server.cc",
    "test/stun_server.h",
    "test/turn_server.cc",
    "test/turn_server.h",
  ]
  deps = [
    ":async_stun_tcp_socket",
    ":port",
    ":port_interface",
    "../api:packet_socket_factory",
    "../api:sequence_checker",
    "../api/environment",
    "../api/task_queue",
    "../api/task_queue:pending_task_safety_flag",
    "../api/transport:ecn_marking",
    "../api/transport:stun_types",
    "../api/units:time_delta",
    "../rtc_base:async_packet_socket",
    "../rtc_base:async_udp_socket",
    "../rtc_base:byte_buffer",
    "../rtc_base:byte_order",
    "../rtc_base:checks",
    "../rtc_base:crypto_random",
    "../rtc_base:digest",
    "../rtc_base:ip_address",
    "../rtc_base:logging",
    "../rtc_base:macromagic",
    "../rtc_base:net_helper",
    "../rtc_base:socket",
    "../rtc_base:socket_address",
    "../rtc_base:ssl_adapter",
    "../rtc_base:stringutils",
    "../rtc_base/memory:less_unique_ptr",
    "../rtc_base/network:received_packet",
    "//third_party/abseil-cpp/absl/algorithm:container",
    "//third_party/abseil-cpp/absl/base:nullability",
    "//third_party/abseil-cpp/absl/memory",
    "//third_party/abseil-cpp/absl/strings:string_view",
  ]
}
