diff options
| author | David Lönnhager <david.l@mullvad.net> | 2025-09-24 12:58:54 +0200 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2025-09-30 16:09:04 +0200 |
| commit | e0e4e89822f06f05d7484dfd0e353902bb2816f8 (patch) | |
| tree | b155fb0ca4ffca2836ecc2e867ce228eb6d53dd2 | |
| parent | 2f5dc7fd40898db547b4560d028774c9cc602630 (diff) | |
| download | mullvadvpn-e0e4e89822f06f05d7484dfd0e353902bb2816f8.tar.xz mullvadvpn-e0e4e89822f06f05d7484dfd0e353902bb2816f8.zip | |
Add feature indicator for LWO
8 files changed, 31 insertions, 9 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 4601995d78..65ab420be3 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 @@ -730,6 +730,7 @@ internal fun ManagementInterface.FeatureIndicator.toDomain() = ManagementInterface.FeatureIndicator.MULTIHOP -> FeatureIndicator.MULTIHOP ManagementInterface.FeatureIndicator.DAITA_MULTIHOP -> FeatureIndicator.DAITA_MULTIHOP ManagementInterface.FeatureIndicator.QUIC -> FeatureIndicator.QUIC + ManagementInterface.FeatureIndicator.LWO, 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 d691973775..f4a8945bc6 100644 --- a/desktop/packages/mullvad-vpn/src/main/grpc-type-convertions.ts +++ b/desktop/packages/mullvad-vpn/src/main/grpc-type-convertions.ts @@ -412,6 +412,8 @@ function convertFromFeatureIndicator( return FeatureIndicator.shadowsocks; case grpcTypes.FeatureIndicator.QUIC: return FeatureIndicator.quic; + case grpcTypes.FeatureIndicator.LWO: + return FeatureIndicator.lwo; } } diff --git a/desktop/packages/mullvad-vpn/src/renderer/components/views/main/components/connection-panel/components/feature-indicators/hooks/use-get-feature-indicator/useGetFeatureIndicator.ts b/desktop/packages/mullvad-vpn/src/renderer/components/views/main/components/connection-panel/components/feature-indicators/hooks/use-get-feature-indicator/useGetFeatureIndicator.ts index e8cb982c88..3d285439b4 100644 --- a/desktop/packages/mullvad-vpn/src/renderer/components/views/main/components/connection-panel/components/feature-indicators/hooks/use-get-feature-indicator/useGetFeatureIndicator.ts +++ b/desktop/packages/mullvad-vpn/src/renderer/components/views/main/components/connection-panel/components/feature-indicators/hooks/use-get-feature-indicator/useGetFeatureIndicator.ts @@ -190,6 +190,10 @@ export const useGetFeatureIndicator = () => { label: messages.pgettext('wireguard-settings-view', 'Obfuscation'), onClick: gotoObfuscation, }, + [FeatureIndicator.lwo]: { + label: messages.pgettext('wireguard-settings-view', 'Obfuscation'), + onClick: gotoObfuscation, + }, [FeatureIndicator.multihop]: { label: // 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 f1c3dd8ac4..ab7773d1a3 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 { udp2tcp, shadowsocks, quic, + lwo, lanSharing, dnsContentBlockers, customDns, diff --git a/desktop/packages/mullvad-vpn/test/e2e/mocked/feature-indicators/feature-indicators.spec.ts b/desktop/packages/mullvad-vpn/test/e2e/mocked/feature-indicators/feature-indicators.spec.ts index 89135a50b9..72fb1e7d61 100644 --- a/desktop/packages/mullvad-vpn/test/e2e/mocked/feature-indicators/feature-indicators.spec.ts +++ b/desktop/packages/mullvad-vpn/test/e2e/mocked/feature-indicators/feature-indicators.spec.ts @@ -77,6 +77,13 @@ const featureIndicatorWithOption: FeatureIndicatorWithOptionTestOption[] = [ option: { name: 'Obfuscation', type: 'listbox' }, }, { + testId: 'LWO', + featureIndicator: FeatureIndicator.lwo, + route: RoutePath.wireguardSettings, + featureIndicatorLabel: 'Obfuscation', + option: { name: 'Obfuscation', type: 'listbox' }, + }, + { testId: 'multihop', featureIndicator: FeatureIndicator.multihop, route: RoutePath.multihopSettings, diff --git a/mullvad-management-interface/proto/management_interface.proto b/mullvad-management-interface/proto/management_interface.proto index 1b38faaacc..21e00573af 100644 --- a/mullvad-management-interface/proto/management_interface.proto +++ b/mullvad-management-interface/proto/management_interface.proto @@ -322,14 +322,15 @@ enum FeatureIndicator { UDP_2_TCP = 5; SHADOWSOCKS = 6; 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; + LWO = 8; + LAN_SHARING = 9; + DNS_CONTENT_BLOCKERS = 10; + CUSTOM_DNS = 11; + SERVER_IP_OVERRIDE = 12; + CUSTOM_MTU = 13; + CUSTOM_MSS_FIX = 14; + DAITA = 15; + DAITA_MULTIHOP = 16; } message ObfuscationInfo { @@ -745,7 +746,6 @@ message Relay { Quic quic = 3; repeated string shadowsocks_extra_addr_in = 4; bool lwo = 5; - } oneof data { diff --git a/mullvad-management-interface/src/types/conversions/features.rs b/mullvad-management-interface/src/types/conversions/features.rs index c37f1e37ac..479827c118 100644 --- a/mullvad-management-interface/src/types/conversions/features.rs +++ b/mullvad-management-interface/src/types/conversions/features.rs @@ -12,6 +12,7 @@ impl From<mullvad_types::features::FeatureIndicator> for proto::FeatureIndicator mullvad_types::features::FeatureIndicator::Udp2Tcp => Udp2Tcp, mullvad_types::features::FeatureIndicator::Shadowsocks => Shadowsocks, mullvad_types::features::FeatureIndicator::Quic => Quic, + mullvad_types::features::FeatureIndicator::Lwo => Lwo, mullvad_types::features::FeatureIndicator::LanSharing => LanSharing, mullvad_types::features::FeatureIndicator::DnsContentBlockers => DnsContentBlockers, mullvad_types::features::FeatureIndicator::CustomDns => CustomDns, @@ -35,6 +36,7 @@ impl From<proto::FeatureIndicator> for mullvad_types::features::FeatureIndicator proto::FeatureIndicator::Udp2Tcp => Self::Udp2Tcp, proto::FeatureIndicator::Shadowsocks => Self::Shadowsocks, proto::FeatureIndicator::Quic => Self::Quic, + proto::FeatureIndicator::Lwo => Self::Lwo, 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 8dc8f5cad5..67c83580bd 100644 --- a/mullvad-types/src/features.rs +++ b/mullvad-types/src/features.rs @@ -74,6 +74,7 @@ pub enum FeatureIndicator { Udp2Tcp, Shadowsocks, Quic, + Lwo, LanSharing, DnsContentBlockers, CustomDns, @@ -101,6 +102,7 @@ impl FeatureIndicator { FeatureIndicator::Udp2Tcp => "Udp2Tcp", FeatureIndicator::Shadowsocks => "Shadowsocks", FeatureIndicator::Quic => "Quic", + FeatureIndicator::Lwo => "LWO", FeatureIndicator::LanSharing => "LAN Sharing", FeatureIndicator::DnsContentBlockers => "Dns Content Blocker", FeatureIndicator::CustomDns => "Custom Dns", @@ -181,6 +183,7 @@ pub fn compute_feature_indicators( let udp_tcp = has_obfuscation(ObfuscationType::Udp2Tcp); let shadowsocks = has_obfuscation(ObfuscationType::Shadowsocks); let quic = has_obfuscation(ObfuscationType::Quic); + let lwo = has_obfuscation(ObfuscationType::Lwo); let mtu = settings.tunnel_options.wireguard.mtu.is_some(); @@ -212,6 +215,7 @@ pub fn compute_feature_indicators( (udp_tcp, FeatureIndicator::Udp2Tcp), (shadowsocks, FeatureIndicator::Shadowsocks), (quic, FeatureIndicator::Quic), + (lwo, FeatureIndicator::Lwo), (mtu, FeatureIndicator::CustomMtu), #[cfg(daita)] (daita, FeatureIndicator::Daita), @@ -459,6 +463,7 @@ mod tests { FeatureIndicator::Udp2Tcp => {} FeatureIndicator::Shadowsocks => {} FeatureIndicator::Quic => {} + FeatureIndicator::Lwo => {} FeatureIndicator::LanSharing => {} FeatureIndicator::DnsContentBlockers => {} FeatureIndicator::CustomDns => {} |
