webrtc/api
Jonas Oreland 2ee0e64696 Add support for manually configuring subnets as VPN
This patch adds support for manually setting subnets that
should be handled as VPN, i.e be subject to VpnPreference,
in case webrtc fails to auto-detect VPNs.

Bug: webrtc:13097
Change-Id: I42514f0677a35cfe30ad053570fa9c2a5b4a856b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/230122
Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#34852}
2021-08-25 14:49:11 +00:00
..
adaptation Use backticks not vertical bars to denote variables in comments for /api 2021-07-26 18:27:34 +00:00
audio Use backticks not vertical bars to denote variables in comments for /api 2021-07-26 18:27:34 +00:00
audio_codecs Use backticks not vertical bars to denote variables in comments for /api 2021-07-26 18:27:34 +00:00
call Use backticks not vertical bars to denote variables in comments for /api 2021-07-26 18:27:34 +00:00
crypto Rename rtc_base/ssl_stream_adapter.h constants. 2021-07-26 16:33:54 +00:00
g3doc Update links to point at main branch 2021-07-22 16:41:26 +00:00
neteq Use backticks not vertical bars to denote variables in comments for /api 2021-07-26 18:27:34 +00:00
numerics Use backticks not vertical bars to denote variables in comments for /api 2021-07-26 18:27:34 +00:00
rtc_event_log Use backticks not vertical bars to denote variables in comments for /api 2021-07-26 18:27:34 +00:00
stats Use backticks not vertical bars to denote variables in comments 2021-08-10 10:40:03 +00:00
task_queue Use backticks not vertical bars to denote variables in comments 2021-08-10 10:40:03 +00:00
test [DVQA] Move video quality analyzer from webrtc::webrtc_pc_e2e to webrtc 2021-08-23 13:48:25 +00:00
transport Add and implement VPN preference 2021-08-25 08:01:21 +00:00
units Rename UNIT_TEST to WEBRTC_UNIT_TEST 2020-12-10 11:04:58 +00:00
video Introduce new api to initialize VideoDecoder 2021-08-10 08:42:43 +00:00
video_codecs Change VideoDecoderFactory::QueryCodecSupport to use reference_scaling 2021-08-19 10:21:16 +00:00
voip Use backticks not vertical bars to denote variables in comments for /api 2021-07-26 18:27:34 +00:00
array_view.h Fix array_view nested namespace. 2021-08-16 14:38:57 +00:00
array_view_unittest.cc rtc::ArrayView reverse iterators 2020-10-21 08:57:13 +00:00
async_dns_resolver.h Use backticks not vertical bars to denote variables in comments for /api 2021-07-26 18:27:34 +00:00
async_resolver_factory.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
audio_options.cc Remove deprecated code related to AEC2 2019-08-07 10:09:36 +00:00
audio_options.h Add RtpEncodingParameters.adaptive_ptime. 2020-06-25 14:51:13 +00:00
BUILD.gn api: Fix visibility of targets in api/ 2021-07-19 12:53:19 +00:00
candidate.cc Use backticks not vertical bars to denote variables in comments for /api 2021-07-26 18:27:34 +00:00
candidate.h Use backticks not vertical bars to denote variables in comments for /api 2021-07-26 18:27:34 +00:00
create_peerconnection_factory.cc Async audio processing API 2020-10-02 12:33:34 +00:00
create_peerconnection_factory.h Async audio processing API 2020-10-02 12:33:34 +00:00
crypto_params.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
data_channel_interface.cc Datachannel: Use absl::optional for maxRetransmits and maxRetransmitTime. 2019-04-09 08:32:43 +00:00
data_channel_interface.h Use backticks not vertical bars to denote variables in comments for /api 2021-07-26 18:27:34 +00:00
DEPS api/test: Move MockVideoTrack to its own file for sharing 2021-07-17 09:39:26 +00:00
dtls_transport_interface.cc Expose TLS version and SRTP cipher to API 2019-10-29 22:20:49 +00:00
dtls_transport_interface.h Expose TLS version and SRTP cipher to API 2019-10-29 22:20:49 +00:00
dtmf_sender_interface.h Use backticks not vertical bars to denote variables in comments for /api 2021-07-26 18:27:34 +00:00
fec_controller.h Use backticks not vertical bars to denote variables in comments for /api 2021-07-26 18:27:34 +00:00
fec_controller_override.h Define FecControllerOverride and plumb it down to VideoEncoder 2019-06-28 15:57:22 +00:00
frame_transformer_interface.h frame transformer: expose payload type 2021-08-25 08:33:20 +00:00
function_view.h Move rtc::FunctionView to the public API 2019-03-21 15:23:05 +00:00
function_view_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
ice_transport_factory.cc Replace new rtc::RefCountedObject with rtc::make_ref_counted in a few files 2021-04-23 12:04:39 +00:00
ice_transport_factory.h Use backticks not vertical bars to denote variables in comments 2021-08-10 10:40:03 +00:00
ice_transport_interface.h Reland "Use the new DNS resolver API in PeerConnection" 2021-04-08 08:44:14 +00:00
jsep.cc Reland "Remove old-style OnFailure callbacks" 2020-02-21 14:07:57 +00:00
jsep.h Use backticks not vertical bars to denote variables in comments 2021-08-10 10:40:03 +00:00
jsep_ice_candidate.cc Use unique_ptr in JsepCandidateCollection 2019-07-31 01:48:07 +00:00
jsep_ice_candidate.h Use backticks not vertical bars to denote variables in comments for /api 2021-07-26 18:27:34 +00:00
jsep_session_description.h Use backticks not vertical bars to denote variables in comments for /api 2021-07-26 18:27:34 +00:00
media_stream_interface.cc New target for api/rtp_parameters.h and api/media_types.h. 2019-08-29 09:04:32 +00:00
media_stream_interface.h Use backticks not vertical bars to denote variables in comments for /api 2021-07-26 18:27:34 +00:00
media_stream_track.h Move pc/media_stream_track.h to the api/ directory 2020-10-12 07:28:01 +00:00
media_types.cc Introduce RTC_CHECK_NOTREACHED(), an always-checking RTC_NOTREACHED() 2020-11-09 10:47:55 +00:00
media_types.h Revert "Define cricket::MediaType in terms of webrtc::MediaType" 2021-05-12 17:06:58 +00:00
network_state_predictor.h Add base class NetworkPredictor and NetworkPredictorFactory and wire up. 2019-04-10 12:38:58 +00:00
notifier.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
OWNERS Add kron as owner of api/uma_metrics.h 2021-06-11 12:25:18 +00:00
packet_socket_factory.h Prepare to move packet_socket_factory to api/. 2019-09-06 09:09:02 +00:00
peer_connection_interface.cc Deprecate PeerConnectionFactory::CreatePeerConnection 2021-05-10 08:47:48 +00:00
peer_connection_interface.h Add support for manually configuring subnets as VPN 2021-08-25 14:49:11 +00:00
priority.h Pass datachannel priority in DC open messages 2020-05-17 10:57:27 +00:00
README.md Move style guide and abseil-in-webrtc into g3doc subfolder 2021-05-13 14:43:10 +00:00
ref_counted_base.h Make RefCountedObject require overriding virtual methods 2021-04-26 11:05:19 +00:00
rtc_error.cc Return an error when datachannel closes due to network error 2019-12-08 17:33:54 +00:00
rtc_error.h Use backticks not vertical bars to denote variables in comments for /api 2021-07-26 18:27:34 +00:00
rtc_error_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
rtc_event_log_output.h Use backticks not vertical bars to denote variables in comments for /api 2021-07-26 18:27:34 +00:00
rtc_event_log_output_file.cc Format almost everything. 2019-07-08 13:45:15 +00:00
rtc_event_log_output_file.h Format almost everything. 2019-07-08 13:45:15 +00:00
rtc_event_log_output_file_unittest.cc Rename several more tests that use EXPECT_DEATH to *DeathTest. 2020-05-18 16:10:04 +00:00
rtp_headers.cc Remove framemarking RTP extension. 2020-06-15 11:18:00 +00:00
rtp_headers.h Update rsid and mid spec links from draft to release version 2021-03-22 12:24:00 +00:00
rtp_packet_info.cc Make local to capturer clock offset a separate entry in PacketInfo. 2021-05-20 13:42:57 +00:00
rtp_packet_info.h Use backticks not vertical bars to denote variables in comments 2021-08-10 10:40:03 +00:00
rtp_packet_info_unittest.cc Make local to capturer clock offset a separate entry in PacketInfo. 2021-05-20 13:42:57 +00:00
rtp_packet_infos.h Use backticks not vertical bars to denote variables in comments 2021-08-10 10:40:03 +00:00
rtp_packet_infos_unittest.cc Use Timestamp to represent packet receive timestamps 2021-05-04 13:16:54 +00:00
rtp_parameters.cc Fix RTP header extension encryption 2021-05-26 09:42:09 +00:00
rtp_parameters.h Allow setting different number of temporal layers per simulcast layer. 2021-08-17 13:33:55 +00:00
rtp_parameters_unittest.cc Fix RTP header extension encryption 2021-05-26 09:42:09 +00:00
rtp_receiver_interface.cc Insert frame transformer between Depacketizer and Decoder. 2020-03-02 08:33:44 +00:00
rtp_receiver_interface.h Use backticks not vertical bars to denote variables in comments for /api 2021-07-26 18:27:34 +00:00
rtp_sender_interface.cc Insert frame transformer between Encoded and Packetizer. 2020-02-28 07:43:13 +00:00
rtp_sender_interface.h Enable Chromium to stop including api/proxy.h indirectly. 2021-05-21 09:35:35 +00:00
rtp_transceiver_direction.h RtpTransceiverInterface: add header_extensions_to_offer() 2020-03-16 13:16:42 +00:00
rtp_transceiver_interface.cc RtpTransceiverInterface: introduce HeaderExtensionsNegotiated. 2020-12-17 23:43:42 +00:00
rtp_transceiver_interface.h Replace RTC_DEPRECATED with ABSL_DEPRECATED 2021-02-22 12:53:23 +00:00
scoped_refptr.h Use backticks not vertical bars to denote variables in comments for /api 2021-07-26 18:27:34 +00:00
scoped_refptr_unittest.cc Mark scoped_refptr move and swap operations as noexcept 2019-11-12 10:17:22 +00:00
sctp_transport_interface.cc Format almost everything. 2019-07-08 13:45:15 +00:00
sctp_transport_interface.h Reland "Fix unsynchronized access to mid_to_transport_ in JsepTransportController" 2021-02-10 13:40:22 +00:00
sequence_checker.h Fix an example in SequenceChecker documentation 2021-04-19 15:58:15 +00:00
sequence_checker_unittest.cc Reland "Refactor the PlatformThread API." 2021-05-07 14:14:43 +00:00
set_local_description_observer_interface.h Use backticks not vertical bars to denote variables in comments 2021-08-10 10:40:03 +00:00
set_remote_description_observer_interface.h Use backticks not vertical bars to denote variables in comments 2021-08-10 10:40:03 +00:00
stats_types.cc Update stats_types.cc to use make_ref_counted. 2021-08-11 09:02:59 +00:00
stats_types.h Use backticks not vertical bars to denote variables in comments 2021-08-10 10:40:03 +00:00
turn_customizer.h Use backticks not vertical bars to denote variables in comments for /api 2021-07-26 18:27:34 +00:00
uma_metrics.h count webrtc pranswer usage 2021-06-11 12:59:37 +00:00
video_track_source_proxy_factory.h Use backticks not vertical bars to denote variables in comments for /api 2021-07-26 18:27:34 +00:00

How to write code in the api/ directory

Mostly, just follow the regular style guide, but:

  • Note that api/ code is not exempt from the “.h and .cc files come in pairs” rule, so if you declare something in api/path/to/foo.h, it should be defined in api/path/to/foo.cc.
  • Headers in api/ should, if possible, not #include headers outside api/. Its not always possible to avoid this, but be aware that it adds to a small mountain of technical debt that were trying to shrink.
  • .cc files in api/, on the other hand, are free to #include headers outside api/.

That is, the preferred way for api/ code to access non-api/ code is to call it from a .cc file, so that users of our API headers wont transitively #include non-public headers.

For headers in api/ that need to refer to non-public types, forward declarations are often a lesser evil than including non-public header files. The usual rules still apply, though.

.cc files in api/ should preferably be kept reasonably small. If a substantial implementation is needed, consider putting it with our non-public code, and just call it from the api/ .cc file.