diff options
| author | Joakim Hulthe <joakim.hulthe@mullvad.net> | 2024-08-12 17:29:21 +0200 |
|---|---|---|
| committer | Joakim Hulthe <joakim.hulthe@mullvad.net> | 2024-09-17 11:29:23 +0200 |
| commit | fb92bf539e21542989c5bd31142b265f33812e0d (patch) | |
| tree | d2945132ded2bd2b1cc4f0746d399a99badce541 /gui/src | |
| parent | 09f779cf14749e19cbc7c702ca3314376b06bcc3 (diff) | |
| download | mullvadvpn-fb92bf539e21542989c5bd31142b265f33812e0d.tar.xz mullvadvpn-fb92bf539e21542989c5bd31142b265f33812e0d.zip | |
Add temporary gui toggle for `use_anywhere`
Diffstat (limited to 'gui/src')
| -rw-r--r-- | gui/src/main/daemon-rpc.ts | 1 | ||||
| -rw-r--r-- | gui/src/renderer/components/WireguardSettings.tsx | 19 | ||||
| -rw-r--r-- | gui/src/renderer/components/select-location/RelayListContext.tsx | 5 | ||||
| -rw-r--r-- | gui/src/shared/daemon-rpc-types.ts | 1 |
4 files changed, 23 insertions, 3 deletions
diff --git a/gui/src/main/daemon-rpc.ts b/gui/src/main/daemon-rpc.ts index c85189cea7..754f0b8d47 100644 --- a/gui/src/main/daemon-rpc.ts +++ b/gui/src/main/daemon-rpc.ts @@ -589,6 +589,7 @@ export class DaemonRpc { public async setDaitaSettings(daitaSettings: IDaitaSettings): Promise<void> { const grpcDaitaSettings = new grpcTypes.DaitaSettings(); grpcDaitaSettings.setEnabled(daitaSettings.enabled); + grpcDaitaSettings.setUseAnywhere(daitaSettings.useAnywhere); await this.call<grpcTypes.DaitaSettings, Empty>( this.client.setDaitaSettings, grpcDaitaSettings, diff --git a/gui/src/renderer/components/WireguardSettings.tsx b/gui/src/renderer/components/WireguardSettings.tsx index 1f4709159f..5beeab26c9 100644 --- a/gui/src/renderer/components/WireguardSettings.tsx +++ b/gui/src/renderer/components/WireguardSettings.tsx @@ -531,6 +531,7 @@ function MtuSetting() { function DaitaSettings() { const { setDaitaSettings } = useAppContext(); const daita = useSelector((state) => state.settings.wireguard.daita?.enabled ?? false); + const useAnywhere = useSelector((state) => state.settings.wireguard.daita?.useAnywhere ?? false); const [confirmationDialogVisible, showConfirmationDialog, hideConfirmationDialog] = useBoolean(); @@ -538,12 +539,16 @@ function DaitaSettings() { if (value) { showConfirmationDialog(); } else { - void setDaitaSettings({ enabled: value }); + void setDaitaSettings({ enabled: value, useAnywhere: useAnywhere }); } }, []); + const setUseAnywhere = useCallback((value: boolean) => { + void setDaitaSettings({ enabled: daita, useAnywhere: value }); + }, []); + const confirmDaita = useCallback(() => { - void setDaitaSettings({ enabled: true }); + void setDaitaSettings({ enabled: true, useAnywhere: useAnywhere }); hideConfirmationDialog(); }, []); @@ -579,6 +584,16 @@ function DaitaSettings() { </AriaInput> </Cell.Container> </AriaInputGroup> + <AriaInputGroup> + <Cell.Container> + <AriaLabel> + <Cell.InputLabel>The "Just make it work" Button</Cell.InputLabel> + </AriaLabel> + <AriaInput> + <Cell.Switch isOn={useAnywhere} onChange={setUseAnywhere} /> + </AriaInput> + </Cell.Container> + </AriaInputGroup> <ModalAlert isOpen={confirmationDialogVisible} type={ModalAlertType.caution} diff --git a/gui/src/renderer/components/select-location/RelayListContext.tsx b/gui/src/renderer/components/select-location/RelayListContext.tsx index 13e2dc28e8..13156dd045 100644 --- a/gui/src/renderer/components/select-location/RelayListContext.tsx +++ b/gui/src/renderer/components/select-location/RelayListContext.tsx @@ -62,8 +62,11 @@ interface RelayListContextProviderProps { export function RelayListContextProvider(props: RelayListContextProviderProps) { const { locationType, searchTerm } = useSelectLocationContext(); const daita = useSelector((state) => state.settings.wireguard.daita?.enabled ?? false); + const useAnywhere = useSelector((state) => state.settings.wireguard.daita?.useAnywhere ?? false); + const fullRelayList = useSelector((state) => state.settings.relayLocations); const relaySettings = useNormalRelaySettings(); + const multihop = relaySettings?.wireguard.useMultihop ?? false; // Filters the relays to only keep the ones of the desired endpoint type, e.g. "wireguard", // "openvpn" or "bridge" @@ -76,7 +79,7 @@ export function RelayListContextProvider(props: RelayListContextProviderProps) { const relayListForDaita = useMemo(() => { return filterLocationsByDaita( relayListForEndpointType, - daita, + daita && (!useAnywhere || multihop), locationType, relaySettings?.tunnelProtocol ?? 'any', relaySettings?.wireguard.useMultihop ?? false, diff --git a/gui/src/shared/daemon-rpc-types.ts b/gui/src/shared/daemon-rpc-types.ts index b84ee8a72e..9cb3c15b5d 100644 --- a/gui/src/shared/daemon-rpc-types.ts +++ b/gui/src/shared/daemon-rpc-types.ts @@ -551,6 +551,7 @@ export interface RelayOverride { export interface IDaitaSettings { enabled: boolean; + useAnywhere: boolean; } export function parseSocketAddress(socketAddrStr: string): ISocketAddress { |
