|  | # 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") | 
|  |  | 
|  | group("p2p") { | 
|  | deps = [ ":libstunprober" ] | 
|  | } | 
|  |  | 
|  | 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", | 
|  | "../api:array_view", | 
|  | ] | 
|  | } | 
|  |  | 
|  | 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:logging", | 
|  | "//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:array_view", | 
|  | "../api/transport:stun_types", | 
|  | "../api/units:timestamp", | 
|  | "../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:timeutils", | 
|  | "../rtc_base/network:received_packet", | 
|  | "../rtc_base/network:sent_packet", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("basic_ice_controller") { | 
|  | sources = [ | 
|  | "base/basic_ice_controller.cc", | 
|  | "base/basic_ice_controller.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":ice_controller_factory_interface", | 
|  | ":ice_controller_interface", | 
|  | ] | 
|  | } | 
|  |  | 
|  | 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", | 
|  | "../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", | 
|  | "../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 = [ | 
|  | ":basic_packet_socket_factory", | 
|  | ":port", | 
|  | ":port_allocator", | 
|  | ":port_interface", | 
|  | ":relay_port_factory_interface", | 
|  | ":stun_port", | 
|  | ":tcp_port", | 
|  | ":turn_port", | 
|  | ":turn_port_factory", | 
|  | ":udp_port", | 
|  | "../api:candidate", | 
|  | "../api:field_trials_view", | 
|  | "../api:packet_socket_factory", | 
|  | "../api:sequence_checker", | 
|  | "../api:turn_customizer", | 
|  | "../api/task_queue:pending_task_safety_flag", | 
|  | "../api/transport:enums", | 
|  | "../api/transport:field_trial_based_config", | 
|  | "../api/units:time_delta", | 
|  | "../rtc_base:async_packet_socket", | 
|  | "../rtc_base:checks", | 
|  | "../rtc_base:crypto_random", | 
|  | "../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:threading", | 
|  | "../rtc_base/experiments:field_trial_parser", | 
|  | "../rtc_base/memory:always_valid_pointer", | 
|  | "../rtc_base/network:received_packet", | 
|  | "../rtc_base/system:rtc_export", | 
|  | "../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: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", | 
|  | ":ice_credentials_iterator", | 
|  | ":p2p_constants", | 
|  | ":p2p_transport_channel_ice_field_trials", | 
|  | ":port_interface", | 
|  | ":stun_request", | 
|  | ":transport_description", | 
|  | "../api:array_view", | 
|  | "../api:candidate", | 
|  | "../api:field_trials_view", | 
|  | "../api:packet_socket_factory", | 
|  | "../api:rtc_error", | 
|  | "../api:sequence_checker", | 
|  | "../api/task_queue", | 
|  | "../api/transport:enums", | 
|  | "../api/transport:field_trial_based_config", | 
|  | "../api/transport:stun_types", | 
|  | "../api/units:time_delta", | 
|  | "../api/units:timestamp", | 
|  | "../logging:ice_log", | 
|  | "../rtc_base:async_packet_socket", | 
|  | "../rtc_base:byte_buffer", | 
|  | "../rtc_base:callback_list", | 
|  | "../rtc_base:checks", | 
|  | "../rtc_base:copy_on_write_buffer", | 
|  | "../rtc_base:crc32", | 
|  | "../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:network_constants", | 
|  | "../rtc_base:rate_tracker", | 
|  | "../rtc_base:rtc_numerics", | 
|  | "../rtc_base:safe_minmax", | 
|  | "../rtc_base:socket", | 
|  | "../rtc_base:socket_address", | 
|  | "../rtc_base:stringutils", | 
|  | "../rtc_base:threading", | 
|  | "../rtc_base:timeutils", | 
|  | "../rtc_base:weak_ptr", | 
|  | "../rtc_base/memory:always_valid_pointer", | 
|  | "../rtc_base/network:received_packet", | 
|  | "../rtc_base/network:sent_packet", | 
|  | "../rtc_base/system:rtc_export", | 
|  | "../rtc_base/third_party/base64", | 
|  | "../rtc_base/third_party/sigslot", | 
|  | "//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", | 
|  | ":p2p_transport_channel", | 
|  | "../api:ice_transport_interface", | 
|  | "../api:make_ref_counted", | 
|  | "../rtc_base:threading", | 
|  | ] | 
|  | } | 
|  |  | 
|  | 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:array_view", | 
|  | "../api:dtls_transport_interface", | 
|  | "../api:rtc_error", | 
|  | "../api:scoped_refptr", | 
|  | "../api:sequence_checker", | 
|  | "../api/crypto:options", | 
|  | "../api/rtc_event_log", | 
|  | "../api/transport:stun_types", | 
|  | "../api/units:timestamp", | 
|  | "../logging:ice_log", | 
|  | "../rtc_base:async_packet_socket", | 
|  | "../rtc_base:buffer", | 
|  | "../rtc_base:buffer_queue", | 
|  | "../rtc_base:checks", | 
|  | "../rtc_base:dscp", | 
|  | "../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:timeutils", | 
|  | "../rtc_base/network:ecn_marking", | 
|  | "../rtc_base/network:received_packet", | 
|  | "../rtc_base/network:sent_packet", | 
|  | "../rtc_base/system:no_unique_address", | 
|  | "//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 = [ | 
|  | ":dtls_transport_internal", | 
|  | ":ice_transport_internal", | 
|  | "../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", | 
|  | "../rtc_base:buffer", | 
|  | "../rtc_base:callback_list", | 
|  | "../rtc_base:ssl", | 
|  | "../rtc_base:ssl_adapter", | 
|  | "//third_party/abseil-cpp/absl/base:core_headers", | 
|  | "//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", | 
|  | "../api:array_view", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("ice_controller_interface") { | 
|  | sources = [ | 
|  | "base/ice_controller_interface.cc", | 
|  | "base/ice_controller_interface.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":connection", | 
|  | ":ice_switch_reason", | 
|  | ":ice_transport_internal", | 
|  | "../rtc_base:checks", | 
|  | "../rtc_base/system:rtc_export", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("ice_controller_factory_interface") { | 
|  | sources = [ "base/ice_controller_factory_interface.h" ] | 
|  | deps = [ | 
|  | ":ice_controller_interface", | 
|  | ":ice_transport_internal", | 
|  | ] | 
|  | } | 
|  |  | 
|  | 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", | 
|  | ":connection_info", | 
|  | ":dtls_stun_piggyback_controller", | 
|  | ":p2p_constants", | 
|  | ":packet_transport_internal", | 
|  | ":port", | 
|  | ":stun_dictionary", | 
|  | ":transport_description", | 
|  | "../api:array_view", | 
|  | "../api:candidate", | 
|  | "../api:field_trials_view", | 
|  | "../api:libjingle_peerconnection_api", | 
|  | "../api:rtc_error", | 
|  | "../api/transport:enums", | 
|  | "../api/transport:stun_types", | 
|  | "../rtc_base:callback_list", | 
|  | "../rtc_base:checks", | 
|  | "../rtc_base:network_constants", | 
|  | "../rtc_base:timeutils", | 
|  | "../rtc_base/network:received_packet", | 
|  | "../rtc_base/system:rtc_export", | 
|  | "../rtc_base/third_party/sigslot", | 
|  | "//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 = [ "../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", | 
|  | ":basic_ice_controller", | 
|  | ":candidate_pair_interface", | 
|  | ":connection", | 
|  | ":connection_info", | 
|  | ":dtls_stun_piggyback_controller", | 
|  | ":ice_agent_interface", | 
|  | ":ice_controller_factory_interface", | 
|  | ":ice_controller_interface", | 
|  | ":ice_switch_reason", | 
|  | ":ice_transport_internal", | 
|  | ":p2p_constants", | 
|  | ":p2p_transport_channel_ice_field_trials", | 
|  | ":port", | 
|  | ":port_allocator", | 
|  | ":port_interface", | 
|  | ":regathering_controller", | 
|  | ":stun_dictionary", | 
|  | ":transport_description", | 
|  | ":wrapping_active_ice_controller", | 
|  | "../api:array_view", | 
|  | "../api:async_dns_resolver", | 
|  | "../api:candidate", | 
|  | "../api:field_trials_view", | 
|  | "../api:ice_transport_interface", | 
|  | "../api:rtc_error", | 
|  | "../api:sequence_checker", | 
|  | "../api/task_queue:pending_task_safety_flag", | 
|  | "../api/transport:enums", | 
|  | "../api/transport:stun_types", | 
|  | "../api/units:time_delta", | 
|  | "../logging:ice_log", | 
|  | "../rtc_base:async_packet_socket", | 
|  | "../rtc_base:checks", | 
|  | "../rtc_base:copy_on_write_buffer", | 
|  | "../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:threading", | 
|  | "../rtc_base:timeutils", | 
|  | "../rtc_base/experiments:field_trial_parser", | 
|  | "../rtc_base/network:received_packet", | 
|  | "../rtc_base/network:sent_packet", | 
|  | "../rtc_base/system:rtc_export", | 
|  | "../system_wrappers:metrics", | 
|  | "//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/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 = [ | 
|  | ":connection", | 
|  | ":port", | 
|  | "../api:sequence_checker", | 
|  | "../rtc_base:async_packet_socket", | 
|  | "../rtc_base:callback_list", | 
|  | "../rtc_base:network_route", | 
|  | "../rtc_base:socket", | 
|  | "../rtc_base/network:received_packet", | 
|  | "../rtc_base/system:rtc_export", | 
|  | "../rtc_base/third_party/sigslot", | 
|  | "//third_party/abseil-cpp/absl/functional:any_invocable", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("port") { | 
|  | sources = [ | 
|  | "base/port.cc", | 
|  | "base/port.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":candidate_pair_interface", | 
|  | ":connection", | 
|  | ":connection_info", | 
|  | ":p2p_constants", | 
|  | ":port_interface", | 
|  | ":stun_request", | 
|  | ":transport_description", | 
|  | "../api:array_view", | 
|  | "../api:candidate", | 
|  | "../api:field_trials_view", | 
|  | "../api:packet_socket_factory", | 
|  | "../api:rtc_error", | 
|  | "../api:sequence_checker", | 
|  | "../api/task_queue", | 
|  | "../api/transport:field_trial_based_config", | 
|  | "../api/transport:stun_types", | 
|  | "../api/units:time_delta", | 
|  | "../logging:ice_log", | 
|  | "../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:network", | 
|  | "../rtc_base:rate_tracker", | 
|  | "../rtc_base:socket_address", | 
|  | "../rtc_base:stringutils", | 
|  | "../rtc_base:timeutils", | 
|  | "../rtc_base:weak_ptr", | 
|  | "../rtc_base/memory:always_valid_pointer", | 
|  | "../rtc_base/network:received_packet", | 
|  | "../rtc_base/network:sent_packet", | 
|  | "../rtc_base/system:rtc_export", | 
|  | "../rtc_base/third_party/sigslot", | 
|  | "//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("port_allocator") { | 
|  | sources = [ | 
|  | "base/port_allocator.cc", | 
|  | "base/port_allocator.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":connection", | 
|  | ":ice_credentials_iterator", | 
|  | ":port", | 
|  | ":port_interface", | 
|  | ":transport_description", | 
|  | "../api:candidate", | 
|  | "../api:sequence_checker", | 
|  | "../api/transport:enums", | 
|  | "../rtc_base:checks", | 
|  | "../rtc_base:crypto_random", | 
|  | "../rtc_base:network", | 
|  | "../rtc_base:socket_address", | 
|  | "../rtc_base:ssl", | 
|  | "../rtc_base:threading", | 
|  | "../rtc_base/system:rtc_export", | 
|  | "../rtc_base/third_party/sigslot", | 
|  | "//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:field_trials_view", | 
|  | "../api:packet_socket_factory", | 
|  | "../api/task_queue:task_queue", | 
|  | "../rtc_base:async_packet_socket", | 
|  | "../rtc_base:callback_list", | 
|  | "../rtc_base:socket_address", | 
|  | "//third_party/abseil-cpp/absl/strings:string_view", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("pseudo_tcp") { | 
|  | sources = [ | 
|  | "base/pseudo_tcp.cc", | 
|  | "base/pseudo_tcp.h", | 
|  | ] | 
|  | deps = [ | 
|  | "../rtc_base:byte_buffer", | 
|  | "../rtc_base:byte_order", | 
|  | "../rtc_base:checks", | 
|  | "../rtc_base:logging", | 
|  | "../rtc_base:safe_minmax", | 
|  | "../rtc_base:socket", | 
|  | "../rtc_base:timeutils", | 
|  | "../rtc_base/synchronization:mutex", | 
|  | "../rtc_base/system:rtc_export", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("regathering_controller") { | 
|  | sources = [ | 
|  | "base/regathering_controller.cc", | 
|  | "base/regathering_controller.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":connection", | 
|  | ":ice_transport_internal", | 
|  | ":port_allocator", | 
|  | "../api/task_queue:pending_task_safety_flag", | 
|  | "../api/units:time_delta", | 
|  | "../rtc_base:threading", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("stun_dictionary") { | 
|  | sources = [ | 
|  | "base/stun_dictionary.cc", | 
|  | "base/stun_dictionary.h", | 
|  | ] | 
|  | deps = [ | 
|  | "../api:rtc_error", | 
|  | "../api/transport:stun_types", | 
|  | "../rtc_base:logging", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("dtls_utils") { | 
|  | sources = [ | 
|  | "dtls/dtls_utils.cc", | 
|  | "dtls/dtls_utils.h", | 
|  | ] | 
|  | deps = [ | 
|  | "../api:array_view", | 
|  | "../rtc_base:byte_buffer", | 
|  | "../rtc_base:checks", | 
|  | ] | 
|  | } | 
|  |  | 
|  | 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:array_view", | 
|  | "../api:sequence_checker", | 
|  | "../api/transport:stun_types", | 
|  | "../api/transport:stun_types", | 
|  | "../rtc_base:buffer", | 
|  | "../rtc_base:byte_buffer", | 
|  | "../rtc_base:checks", | 
|  | "../rtc_base:logging", | 
|  | "../rtc_base:logging", | 
|  | "../rtc_base:macromagic", | 
|  | "../rtc_base:stringutils", | 
|  | "../rtc_base/system:no_unique_address", | 
|  | "//third_party/abseil-cpp/absl/functional:any_invocable", | 
|  | "//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_allocator", | 
|  | ":stun_request", | 
|  | "../api/task_queue:pending_task_safety_flag", | 
|  | "../api/transport:stun_types", | 
|  | "../rtc_base:async_packet_socket", | 
|  | "../rtc_base:checks", | 
|  | "../rtc_base:crypto_random", | 
|  | "../rtc_base:ip_address", | 
|  | "../rtc_base:logging", | 
|  | "../rtc_base:stringutils", | 
|  | "../rtc_base:timeutils", | 
|  | "../rtc_base/experiments:field_trial_parser", | 
|  | "../rtc_base/network:received_packet", | 
|  | "../rtc_base/system:rtc_export", | 
|  | "//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/task_queue", | 
|  | "../api/task_queue:pending_task_safety_flag", | 
|  | "../api/transport:stun_types", | 
|  | "../api/units:time_delta", | 
|  | "../rtc_base:checks", | 
|  | "../rtc_base:crypto_random", | 
|  | "../rtc_base:logging", | 
|  | "../rtc_base:stringutils", | 
|  | "../rtc_base:timeutils", | 
|  | "//third_party/abseil-cpp/absl/memory", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("tcp_port") { | 
|  | sources = [ | 
|  | "base/tcp_port.cc", | 
|  | "base/tcp_port.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":connection", | 
|  | ":p2p_constants", | 
|  | ":port", | 
|  | "../api/task_queue:pending_task_safety_flag", | 
|  | "../api/units:time_delta", | 
|  | "../rtc_base:async_packet_socket", | 
|  | "../rtc_base:checks", | 
|  | "../rtc_base:ip_address", | 
|  | "../rtc_base:logging", | 
|  | "../rtc_base:net_helper", | 
|  | "../rtc_base:rate_tracker", | 
|  | "../rtc_base:threading", | 
|  | "../rtc_base:timeutils", | 
|  | "../rtc_base/containers:flat_map", | 
|  | "../rtc_base/network:received_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:logging", | 
|  | "../rtc_base:macromagic", | 
|  | "../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", | 
|  | "../rtc_base:logging", | 
|  | "../rtc_base:ssl", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("transport_info") { | 
|  | sources = [ "base/transport_info.h" ] | 
|  | deps = [ | 
|  | ":p2p_constants", | 
|  | ":transport_description", | 
|  | "../api:candidate", | 
|  | "../rtc_base:ssl", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_source_set("udp_port") { | 
|  | sources = [ "base/udp_port.h" ] | 
|  | deps = [ ":stun_port" ] | 
|  | } | 
|  |  | 
|  | rtc_library("turn_port") { | 
|  | sources = [ | 
|  | "base/turn_port.cc", | 
|  | "base/turn_port.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":connection", | 
|  | ":p2p_constants", | 
|  | ":port", | 
|  | ":port_allocator", | 
|  | ":relay_port_factory_interface", | 
|  | "../api:async_dns_resolver", | 
|  | "../api:turn_customizer", | 
|  | "../api/task_queue", | 
|  | "../api/task_queue:pending_task_safety_flag", | 
|  | "../api/transport:stun_types", | 
|  | "../rtc_base:async_packet_socket", | 
|  | "../rtc_base:byte_order", | 
|  | "../rtc_base:checks", | 
|  | "../rtc_base:logging", | 
|  | "../rtc_base:net_helpers", | 
|  | "../rtc_base:socket_address", | 
|  | "../rtc_base:ssl", | 
|  | "../rtc_base:stringutils", | 
|  | "../rtc_base/experiments:field_trial_parser", | 
|  | "../rtc_base/network:received_packet", | 
|  | "//third_party/abseil-cpp/absl/algorithm:container", | 
|  | "//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_interface", | 
|  | "../rtc_base:refcount", | 
|  | ] | 
|  | } | 
|  |  | 
|  | 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:pending_task_safety_flag", | 
|  | "../api/units:time_delta", | 
|  | "../rtc_base:logging", | 
|  | "../rtc_base:macromagic", | 
|  | "../rtc_base:threading", | 
|  | "../rtc_base:timeutils", | 
|  | ] | 
|  | } | 
|  |  | 
|  | 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", | 
|  | ":connection_info", | 
|  | ":dtls_stun_piggyback_controller", | 
|  | ":ice_transport_internal", | 
|  | ":port", | 
|  | ":transport_description", | 
|  | "../api:candidate", | 
|  | "../api:ice_transport_interface", | 
|  | "../api:libjingle_peerconnection_api", | 
|  | "../api:sequence_checker", | 
|  | "../api/task_queue:pending_task_safety_flag", | 
|  | "../api/transport:enums", | 
|  | "../api/units:time_delta", | 
|  | "../rtc_base:async_packet_socket", | 
|  | "../rtc_base:checks", | 
|  | "../rtc_base:copy_on_write_buffer", | 
|  | "../rtc_base:logging", | 
|  | "../rtc_base:macromagic", | 
|  | "../rtc_base:network_route", | 
|  | "../rtc_base:socket", | 
|  | "../rtc_base:task_queue_for_test", | 
|  | "../rtc_base:threading", | 
|  | "../rtc_base:timeutils", | 
|  | "../rtc_base/network:received_packet", | 
|  | "../rtc_base/network:sent_packet", | 
|  | "//third_party/abseil-cpp/absl/algorithm:container", | 
|  | "//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", | 
|  | ":connection", | 
|  | ":port_allocator", | 
|  | ":udp_port", | 
|  | "../rtc_base:net_helpers", | 
|  | "../rtc_base:net_test_helpers", | 
|  | "../rtc_base:task_queue_for_test", | 
|  | "../rtc_base:threading", | 
|  | "../rtc_base/memory:always_valid_pointer", | 
|  | "//third_party/abseil-cpp/absl/memory", | 
|  | "//third_party/abseil-cpp/absl/strings:string_view", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("p2p_test_utils") { | 
|  | testonly = true | 
|  | 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", | 
|  | ":connection", | 
|  | ":dtls_transport_internal", | 
|  | ":fake_ice_transport", | 
|  | ":fake_port_allocator", | 
|  | ":ice_agent_interface", | 
|  | ":ice_controller_factory_interface", | 
|  | ":ice_controller_interface", | 
|  | ":ice_switch_reason", | 
|  | ":ice_transport_internal", | 
|  | ":p2p_server_utils", | 
|  | ":packet_transport_internal", | 
|  | ":transport_description", | 
|  | "../api:array_view", | 
|  | "../api:dtls_transport_interface", | 
|  | "../api:libjingle_peerconnection_api", | 
|  | "../api:mock_async_dns_resolver", | 
|  | "../api:packet_socket_factory", | 
|  | "../api:rtc_error", | 
|  | "../api:scoped_refptr", | 
|  | "../api:sequence_checker", | 
|  | "../api:turn_customizer", | 
|  | "../api/crypto:options", | 
|  | "../api/transport:stun_types", | 
|  | "../api/units:timestamp", | 
|  | "../rtc_base:async_packet_socket", | 
|  | "../rtc_base:async_udp_socket", | 
|  | "../rtc_base:async_udp_socket", | 
|  | "../rtc_base:buffer", | 
|  | "../rtc_base:checks", | 
|  | "../rtc_base:copy_on_write_buffer", | 
|  | "../rtc_base:gunit_helpers", | 
|  | "../rtc_base:logging", | 
|  | "../rtc_base:macromagic", | 
|  | "../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:timeutils", | 
|  | "../rtc_base/network:received_packet", | 
|  | "../rtc_base/synchronization:mutex", | 
|  | "../rtc_base/third_party/sigslot", | 
|  | "../test:test_support", | 
|  | "//third_party/abseil-cpp/absl/strings:string_view", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("rtc_p2p_unittests") { | 
|  | testonly = true | 
|  |  | 
|  | sources = [ | 
|  | "base/async_stun_tcp_socket_unittest.cc", | 
|  | "base/ice_credentials_iterator_unittest.cc", | 
|  | "base/p2p_transport_channel_unittest.cc", | 
|  | "base/packet_transport_internal_unittest.cc", | 
|  | "base/port_allocator_unittest.cc", | 
|  | "base/port_unittest.cc", | 
|  | "base/pseudo_tcp_unittest.cc", | 
|  | "base/regathering_controller_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_integrationtest.cc", | 
|  | "dtls/dtls_stun_piggyback_controller_unittest.cc", | 
|  | "dtls/dtls_transport_unittest.cc", | 
|  | "dtls/dtls_utils_unittest.cc", | 
|  | "test/nat_unittest.cc", | 
|  | "test/stun_server_unittest.cc", | 
|  | "test/turn_server_unittest.cc", | 
|  | ] | 
|  | deps = [ | 
|  | ":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", | 
|  | ":pseudo_tcp", | 
|  | ":regathering_controller", | 
|  | ":relay_port_factory_interface", | 
|  | ":stun_dictionary", | 
|  | ":stun_port", | 
|  | ":stun_request", | 
|  | ":tcp_port", | 
|  | ":transport_description", | 
|  | ":transport_description_factory", | 
|  | ":turn_port", | 
|  | ":wrapping_active_ice_controller", | 
|  | "../api:array_view", | 
|  | "../api:async_dns_resolver", | 
|  | "../api:candidate", | 
|  | "../api:dtls_transport_interface", | 
|  | "../api:field_trials", | 
|  | "../api:field_trials_view", | 
|  | "../api:ice_transport_interface", | 
|  | "../api:mock_async_dns_resolver", | 
|  | "../api:packet_socket_factory", | 
|  | "../api:rtc_error", | 
|  | "../api:rtc_error_matchers", | 
|  | "../api:scoped_refptr", | 
|  | "../api/crypto:options", | 
|  | "../api/environment", | 
|  | "../api/environment:environment_factory", | 
|  | "../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: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:gunit_helpers", | 
|  | "../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:net_test_helpers", | 
|  | "../rtc_base:network", | 
|  | "../rtc_base:network_constants", | 
|  | "../rtc_base:network_route", | 
|  | "../rtc_base:rtc_base_tests_utils", | 
|  | "../rtc_base:socket", | 
|  | "../rtc_base:socket_adapters", | 
|  | "../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/third_party/sigslot", | 
|  | "../system_wrappers:metrics", | 
|  | "../test:scoped_key_value_config", | 
|  | "../test:test_support", | 
|  | "../test:wait_until", | 
|  | "//third_party/abseil-cpp/absl/algorithm:container", | 
|  | "//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", | 
|  | "//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_interface", | 
|  | "../api:array_view", | 
|  | "../api:packet_socket_factory", | 
|  | "../api:sequence_checker", | 
|  | "../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:async_udp_socket", | 
|  | "../rtc_base:byte_buffer", | 
|  | "../rtc_base:checks", | 
|  | "../rtc_base:crypto_random", | 
|  | "../rtc_base:digest", | 
|  | "../rtc_base:logging", | 
|  | "../rtc_base:rtc_base_tests_utils", | 
|  | "../rtc_base:socket_adapters", | 
|  | "../rtc_base:socket_address", | 
|  | "../rtc_base:ssl", | 
|  | "../rtc_base:ssl_adapter", | 
|  | "../rtc_base:stringutils", | 
|  | "../rtc_base:timeutils", | 
|  | "../rtc_base/network:received_packet", | 
|  | "../rtc_base/third_party/sigslot", | 
|  | "//third_party/abseil-cpp/absl/algorithm:container", | 
|  | "//third_party/abseil-cpp/absl/memory", | 
|  | "//third_party/abseil-cpp/absl/strings:string_view", | 
|  | ] | 
|  | } | 
|  |  | 
|  | rtc_library("libstunprober") { | 
|  | visibility = [ "*" ] | 
|  | sources = [ | 
|  | "stunprober/stun_prober.cc", | 
|  | "stunprober/stun_prober.h", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | "../api:array_view", | 
|  | "../api:async_dns_resolver", | 
|  | "../api:packet_socket_factory", | 
|  | "../api:sequence_checker", | 
|  | "../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:checks", | 
|  | "../rtc_base:ip_address", | 
|  | "../rtc_base:logging", | 
|  | "../rtc_base:net_helpers", | 
|  | "../rtc_base:network", | 
|  | "../rtc_base:socket_address", | 
|  | "../rtc_base:ssl", | 
|  | "../rtc_base:threading", | 
|  | "../rtc_base:timeutils", | 
|  | "../rtc_base/network:received_packet", | 
|  | "../rtc_base/system:rtc_export", | 
|  | "../rtc_base/third_party/sigslot", | 
|  | ] | 
|  | } | 
|  |  | 
|  | if (rtc_include_tests) { | 
|  | rtc_library("libstunprober_unittests") { | 
|  | testonly = true | 
|  |  | 
|  | sources = [ "stunprober/stun_prober_unittest.cc" ] | 
|  | deps = [ | 
|  | ":basic_packet_socket_factory", | 
|  | ":libstunprober", | 
|  | ":p2p_test_utils", | 
|  | "../rtc_base:checks", | 
|  | "../rtc_base:gunit_helpers", | 
|  | "../rtc_base:ip_address", | 
|  | "../rtc_base:network", | 
|  | "../rtc_base:rtc_base_tests_utils", | 
|  | "../rtc_base:socket_address", | 
|  | "../rtc_base:ssl_adapter", | 
|  | "../rtc_base:threading", | 
|  | "../test:test_support", | 
|  | "//testing/gtest", | 
|  | ] | 
|  | } | 
|  | } |