diff options
| author | Markus Pettersson <markus.pettersson@mullvad.net> | 2025-07-17 18:24:56 +0200 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2025-07-23 09:41:54 +0200 |
| commit | 38b8388e06b0fd60c3e4e6aa351eb541329dd3dd (patch) | |
| tree | 0082708fb62cadfe9f1fd405c6ec7ac9ec75556d /desktop | |
| parent | bb4b111acc09a92fdf12e0fc6d504180f91421c8 (diff) | |
| download | mullvadvpn-38b8388e06b0fd60c3e4e6aa351eb541329dd3dd.tar.xz mullvadvpn-38b8388e06b0fd60c3e4e6aa351eb541329dd3dd.zip | |
Refactor Relay protobuf type
Remove the dependency on google/protobuf/any.proto.
Diffstat (limited to 'desktop')
4 files changed, 27 insertions, 41 deletions
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 1a49dae202..4b79b0b1d9 100644 --- a/desktop/packages/mullvad-vpn/src/main/grpc-type-convertions.ts +++ b/desktop/packages/mullvad-vpn/src/main/grpc-type-convertions.ts @@ -25,7 +25,6 @@ import { ErrorStateCause, ErrorStateDetails, FeatureIndicator, - FeaturesType, FirewallPolicyError, FirewallPolicyErrorType, IAppVersionInfo, @@ -53,7 +52,7 @@ import { ObfuscationType, Ownership, ProxyType, - RelayEndpointType, + Quic, RelayLocation, RelayLocationGeographical, RelayProtocol, @@ -119,43 +118,35 @@ function convertFromRelayListCity(city: grpcTypes.RelayListCity): IRelayListCity function convertFromRelayListRelay(relay: grpcTypes.Relay): IRelayListHostname { const relayObject = relay.toObject(); - let daita = false; - if (relayObject.endpointType === grpcTypes.Relay.RelayType.WIREGUARD) { - const endpointDataU8 = relay.getEndpointData()?.getValue_asU8(); - if (endpointDataU8) { - daita = grpcTypes.WireguardRelayEndpointData.deserializeBinary(endpointDataU8).getDaita(); - } - } + // The relay type is determined by the variant of the extra endpoint data + const wireguard = relayObject.endpointData?.wireguard; + const openvpn = relayObject.endpointData?.openvpn; + const bridge = relayObject.endpointData?.bridge; + + const endpointType = wireguard + ? 'wireguard' + : openvpn + ? 'openvpn' + : bridge + ? 'bridge' + : /*This case should never happen ..*/ 'bridge'; + + const daita = wireguard ? wireguard.daita : false; + const quic = wireguard?.quic ? quicFromRelayType(wireguard.quic) : undefined; return { ...relayObject, - endpointType: convertFromRelayType(relayObject.endpointType), - features: relayObject.features ? featuresFromRelayType(relayObject.features) : undefined, + endpointType, daita, + quic, }; } -function convertFromRelayType(relayType: grpcTypes.Relay.RelayType): RelayEndpointType { - const protocolMap: Record<grpcTypes.Relay.RelayType, RelayEndpointType> = { - [grpcTypes.Relay.RelayType.OPENVPN]: 'openvpn', - [grpcTypes.Relay.RelayType.BRIDGE]: 'bridge', - [grpcTypes.Relay.RelayType.WIREGUARD]: 'wireguard', - }; - return protocolMap[relayType]; -} - -function featuresFromRelayType(features: grpcTypes.Relay.Features.AsObject): FeaturesType { - const daita = features.daita; - const quic = features.quic - ? { - domain: features.quic.domain, - token: features.quic.token, - addr_in: features.quic.addrInList, - } - : undefined; +function quicFromRelayType(quic: grpcTypes.Relay.RelayData.Wireguard.Quic.AsObject): Quic { return { - daita, - quic, + domain: quic.domain, + token: quic.token, + addrIn: quic.addrInList, }; } diff --git a/desktop/packages/mullvad-vpn/src/renderer/lib/filter-locations.ts b/desktop/packages/mullvad-vpn/src/renderer/lib/filter-locations.ts index fcfd3a38da..29ce00f1ff 100644 --- a/desktop/packages/mullvad-vpn/src/renderer/lib/filter-locations.ts +++ b/desktop/packages/mullvad-vpn/src/renderer/lib/filter-locations.ts @@ -38,7 +38,7 @@ export function filterLocationsByQuic( tunnelProtocol: TunnelProtocol, ): IRelayLocationCountryRedux[] { const quicFilterActive = quic && tunnelProtocol !== 'openvpn'; - const quickOnRelay = (relay: IRelayLocationRelayRedux) => relay.features?.quic !== undefined; + const quickOnRelay = (relay: IRelayLocationRelayRedux) => relay.quic !== undefined; return quicFilterActive ? filterLocationsImpl(locations, quickOnRelay) : locations; } diff --git a/desktop/packages/mullvad-vpn/src/renderer/redux/settings/reducers.ts b/desktop/packages/mullvad-vpn/src/renderer/redux/settings/reducers.ts index 9fc8a6d30e..9ac8bb3a61 100644 --- a/desktop/packages/mullvad-vpn/src/renderer/redux/settings/reducers.ts +++ b/desktop/packages/mullvad-vpn/src/renderer/redux/settings/reducers.ts @@ -7,7 +7,6 @@ import { BridgeType, CustomLists, CustomProxy, - FeaturesType, IDaitaSettings, IDnsOptions, IpVersion, @@ -16,6 +15,7 @@ import { ObfuscationSettings, ObfuscationType, Ownership, + Quic, RelayEndpointType, RelayLocation, RelayOverride, @@ -78,7 +78,7 @@ export interface IRelayLocationRelayRedux { weight: number; endpointType: RelayEndpointType; daita: boolean; - features?: FeaturesType; + quic?: Quic; } export interface IRelayLocationCityRedux { 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 f12c3123f8..49164a3770 100644 --- a/desktop/packages/mullvad-vpn/src/shared/daemon-rpc-types.ts +++ b/desktop/packages/mullvad-vpn/src/shared/daemon-rpc-types.ts @@ -396,15 +396,10 @@ export interface IRelayListHostname { weight: number; owned: boolean; endpointType: RelayEndpointType; - daita: boolean; // TODO: Deprecate in favor of Features 👇 - features?: FeaturesType; -} - -// The absence of a value signals that the relay does not have it enabled. -export type FeaturesType = { daita: boolean; + // The absence of this value signals that the relay does not deploy QUIC. quic?: Quic; -}; +} export type Quic = { domain: string; |
