summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--mullvad-management-interface/proto/management_interface.proto17
-rw-r--r--mullvad-management-interface/src/types/conversions/features.rs2
-rw-r--r--mullvad-types/src/features.rs24
3 files changed, 25 insertions, 18 deletions
diff --git a/mullvad-management-interface/proto/management_interface.proto b/mullvad-management-interface/proto/management_interface.proto
index b55ecd65f7..199f4f2000 100644
--- a/mullvad-management-interface/proto/management_interface.proto
+++ b/mullvad-management-interface/proto/management_interface.proto
@@ -322,14 +322,15 @@ enum FeatureIndicator {
LOCKDOWN_MODE = 4;
UDP_2_TCP = 5;
SHADOWSOCKS = 6;
- LAN_SHARING = 7;
- DNS_CONTENT_BLOCKERS = 8;
- CUSTOM_DNS = 9;
- SERVER_IP_OVERRIDE = 10;
- CUSTOM_MTU = 11;
- CUSTOM_MSS_FIX = 12;
- DAITA = 13;
- DAITA_MULTIHOP = 14;
+ QUIC = 7;
+ LAN_SHARING = 8;
+ DNS_CONTENT_BLOCKERS = 9;
+ CUSTOM_DNS = 10;
+ SERVER_IP_OVERRIDE = 11;
+ CUSTOM_MTU = 12;
+ CUSTOM_MSS_FIX = 13;
+ DAITA = 14;
+ DAITA_MULTIHOP = 15;
}
message ObfuscationEndpoint {
diff --git a/mullvad-management-interface/src/types/conversions/features.rs b/mullvad-management-interface/src/types/conversions/features.rs
index bc1d6aa05a..c37f1e37ac 100644
--- a/mullvad-management-interface/src/types/conversions/features.rs
+++ b/mullvad-management-interface/src/types/conversions/features.rs
@@ -11,6 +11,7 @@ impl From<mullvad_types::features::FeatureIndicator> for proto::FeatureIndicator
mullvad_types::features::FeatureIndicator::LockdownMode => LockdownMode,
mullvad_types::features::FeatureIndicator::Udp2Tcp => Udp2Tcp,
mullvad_types::features::FeatureIndicator::Shadowsocks => Shadowsocks,
+ mullvad_types::features::FeatureIndicator::Quic => Quic,
mullvad_types::features::FeatureIndicator::LanSharing => LanSharing,
mullvad_types::features::FeatureIndicator::DnsContentBlockers => DnsContentBlockers,
mullvad_types::features::FeatureIndicator::CustomDns => CustomDns,
@@ -33,6 +34,7 @@ impl From<proto::FeatureIndicator> for mullvad_types::features::FeatureIndicator
proto::FeatureIndicator::LockdownMode => Self::LockdownMode,
proto::FeatureIndicator::Udp2Tcp => Self::Udp2Tcp,
proto::FeatureIndicator::Shadowsocks => Self::Shadowsocks,
+ proto::FeatureIndicator::Quic => Self::Quic,
proto::FeatureIndicator::LanSharing => Self::LanSharing,
proto::FeatureIndicator::DnsContentBlockers => Self::DnsContentBlockers,
proto::FeatureIndicator::CustomDns => Self::CustomDns,
diff --git a/mullvad-types/src/features.rs b/mullvad-types/src/features.rs
index e0722668c9..c181a52dbb 100644
--- a/mullvad-types/src/features.rs
+++ b/mullvad-types/src/features.rs
@@ -73,6 +73,7 @@ pub enum FeatureIndicator {
LockdownMode,
Udp2Tcp,
Shadowsocks,
+ Quic,
LanSharing,
DnsContentBlockers,
CustomDns,
@@ -99,6 +100,7 @@ impl FeatureIndicator {
FeatureIndicator::LockdownMode => "Lockdown Mode",
FeatureIndicator::Udp2Tcp => "Udp2Tcp",
FeatureIndicator::Shadowsocks => "Shadowsocks",
+ FeatureIndicator::Quic => "Quic",
FeatureIndicator::LanSharing => "LAN Sharing",
FeatureIndicator::DnsContentBlockers => "Dns Content Blocker",
FeatureIndicator::CustomDns => "Custom Dns",
@@ -168,16 +170,16 @@ pub fn compute_feature_indicators(
}
TunnelType::Wireguard => {
let quantum_resistant = endpoint.quantum_resistant;
- let udp_tcp = endpoint
- .obfuscation
- .as_ref()
- .filter(|obfuscation| obfuscation.obfuscation_type == ObfuscationType::Udp2Tcp)
- .is_some();
- let shadowsocks = endpoint
- .obfuscation
- .as_ref()
- .filter(|obfuscation| obfuscation.obfuscation_type == ObfuscationType::Shadowsocks)
- .is_some();
+
+ let has_obfuscation = |obfs| {
+ endpoint
+ .obfuscation
+ .iter()
+ .any(|obfuscation| obfuscation.obfuscation_type == obfs)
+ };
+ let udp_tcp = has_obfuscation(ObfuscationType::Udp2Tcp);
+ let shadowsocks = has_obfuscation(ObfuscationType::Shadowsocks);
+ let quic = has_obfuscation(ObfuscationType::Quic);
let mtu = settings.tunnel_options.wireguard.mtu.is_some();
@@ -208,6 +210,7 @@ pub fn compute_feature_indicators(
(multihop, FeatureIndicator::Multihop),
(udp_tcp, FeatureIndicator::Udp2Tcp),
(shadowsocks, FeatureIndicator::Shadowsocks),
+ (quic, FeatureIndicator::Quic),
(mtu, FeatureIndicator::CustomMtu),
#[cfg(daita)]
(daita, FeatureIndicator::Daita),
@@ -451,6 +454,7 @@ mod tests {
FeatureIndicator::LockdownMode => {}
FeatureIndicator::Udp2Tcp => {}
FeatureIndicator::Shadowsocks => {}
+ FeatureIndicator::Quic => {}
FeatureIndicator::LanSharing => {}
FeatureIndicator::DnsContentBlockers => {}
FeatureIndicator::CustomDns => {}