diff options
| author | Markus Pettersson <markus.pettersson@mullvad.net> | 2025-07-16 11:01:14 +0200 |
|---|---|---|
| committer | Markus Pettersson <markus.pettersson@mullvad.net> | 2025-07-16 11:01:14 +0200 |
| commit | eb37f45de40a72e3bb2dc2fa3366a3f8441072e9 (patch) | |
| tree | afad922e4e407896ab0ad66ce1d2139345170460 | |
| parent | 3fc75ac1e71704fa82f322fed91cacab6c962bbe (diff) | |
| parent | 7df1d3037bed7d6abfcac7f39dca4962d9f6c9af (diff) | |
| download | mullvadvpn-eb37f45de40a72e3bb2dc2fa3366a3f8441072e9.tar.xz mullvadvpn-eb37f45de40a72e3bb2dc2fa3366a3f8441072e9.zip | |
Merge branch 'show-obfuscation-feature-indicator-when-connected-over-quic-des-2267'
7 files changed, 30 insertions, 18 deletions
diff --git a/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/ToDomain.kt b/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/ToDomain.kt index 6c8544950f..be817feb04 100644 --- a/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/ToDomain.kt +++ b/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/ToDomain.kt @@ -717,6 +717,7 @@ internal fun ManagementInterface.FeatureIndicator.toDomain() = ManagementInterface.FeatureIndicator.SHADOWSOCKS -> FeatureIndicator.SHADOWSOCKS ManagementInterface.FeatureIndicator.MULTIHOP -> FeatureIndicator.MULTIHOP ManagementInterface.FeatureIndicator.DAITA_MULTIHOP -> FeatureIndicator.DAITA_MULTIHOP + ManagementInterface.FeatureIndicator.QUIC, ManagementInterface.FeatureIndicator.LOCKDOWN_MODE, ManagementInterface.FeatureIndicator.BRIDGE_MODE, ManagementInterface.FeatureIndicator.CUSTOM_MSS_FIX, diff --git a/desktop/packages/mullvad-vpn/src/main/grpc-type-convertions.ts b/desktop/packages/mullvad-vpn/src/main/grpc-type-convertions.ts index c5c6ccf4d2..6d8ebcb17b 100644 --- a/desktop/packages/mullvad-vpn/src/main/grpc-type-convertions.ts +++ b/desktop/packages/mullvad-vpn/src/main/grpc-type-convertions.ts @@ -396,6 +396,8 @@ function convertFromFeatureIndicator( return FeatureIndicator.daitaMultihop; case grpcTypes.FeatureIndicator.SHADOWSOCKS: return FeatureIndicator.shadowsocks; + case grpcTypes.FeatureIndicator.QUIC: + return FeatureIndicator.quic; } } diff --git a/desktop/packages/mullvad-vpn/src/renderer/components/main-view/FeatureIndicators.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/main-view/FeatureIndicators.tsx index c98bb0bc62..f1d5595b66 100644 --- a/desktop/packages/mullvad-vpn/src/renderer/components/main-view/FeatureIndicators.tsx +++ b/desktop/packages/mullvad-vpn/src/renderer/components/main-view/FeatureIndicators.tsx @@ -254,6 +254,7 @@ function getFeatureIndicatorLabel(indicator: FeatureIndicator) { ); case FeatureIndicator.udp2tcp: case FeatureIndicator.shadowsocks: + case FeatureIndicator.quic: return messages.pgettext('wireguard-settings-view', 'Obfuscation'); case FeatureIndicator.multihop: // TRANSLATORS: This refers to the multihop setting in the VPN settings view. This is diff --git a/desktop/packages/mullvad-vpn/src/shared/daemon-rpc-types.ts b/desktop/packages/mullvad-vpn/src/shared/daemon-rpc-types.ts index 45ed498237..63ec8d0b9b 100644 --- a/desktop/packages/mullvad-vpn/src/shared/daemon-rpc-types.ts +++ b/desktop/packages/mullvad-vpn/src/shared/daemon-rpc-types.ts @@ -232,6 +232,7 @@ export enum FeatureIndicator { lockdownMode, udp2tcp, shadowsocks, + quic, lanSharing, dnsContentBlockers, customDns, 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 => {} |
