webrtc/api/transport/enums.h
Jonas Oreland c8fa1eeb75 Add and implement VPN preference
This patch adds a vp preference field to RTCConfig.
  DEFAULT,       // No VPN preference.
  ONLY_USE_VPN,  // only use VPN connections.
  NEVER_USE_VPN, // never use VPN connections
  PREFER_VPN,    // use a VPN connection if possible, i.e VPN connections sorts higher than all other connections.
  AVOID_VPN,     // only use VPN if there is no other connections, i.e VPN connections sorts last.

Bug: webrtc:13097
Change-Id: I3f95bdfa9134e082c7d389f803bd08facfb70262
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/229591
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#34842}
2021-08-25 08:01:21 +00:00

49 lines
1.5 KiB
C++

/*
* Copyright 2018 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.
*/
#ifndef API_TRANSPORT_ENUMS_H_
#define API_TRANSPORT_ENUMS_H_
namespace webrtc {
// See https://w3c.github.io/webrtc-pc/#rtcicetransportstate
// Note that kFailed is currently not a terminal state, and a transport might
// incorrectly be marked as failed while gathering candidates, see
// bugs.webrtc.org/8833
enum class IceTransportState {
kNew,
kChecking,
kConnected,
kCompleted,
kFailed,
kDisconnected,
kClosed,
};
enum PortPrunePolicy {
NO_PRUNE, // Do not prune.
PRUNE_BASED_ON_PRIORITY, // Prune lower-priority ports on the same network.
KEEP_FIRST_READY // Keep the first ready port and prune the rest
// on the same network.
};
enum class VpnPreference {
kDefault, // No VPN preference.
kOnlyUseVpn, // only use VPN connections.
kNeverUseVpn, // never use VPN connections
kPreferVpn, // use a VPN connection if possible,
// i.e VPN connections sorts first.
kAvoidVpn, // only use VPN if there is no other connections,
// i.e VPN connections sorts last.
};
} // namespace webrtc
#endif // API_TRANSPORT_ENUMS_H_