diff options
| author | Oskar Nyberg <oskar@mullvad.net> | 2020-01-27 11:49:53 +0100 |
|---|---|---|
| committer | Oskar Nyberg <oskar@mullvad.net> | 2020-01-28 12:36:26 +0100 |
| commit | ebcc8180c6798759d1f2d1c6c09c90f410b86773 (patch) | |
| tree | 4415238e03e0b5d7536e2214e6c7f2948cdb1ff5 | |
| parent | a59598990793e74a312f2cf2891d30d67daf0c25 (diff) | |
| download | mullvadvpn-ebcc8180c6798759d1f2d1c6c09c90f410b86773.tar.xz mullvadvpn-ebcc8180c6798759d1f2d1c6c09c90f410b86773.zip | |
Disable wireguard if there's no wireguard key
| -rw-r--r-- | gui/src/renderer/components/AdvancedSettings.tsx | 42 | ||||
| -rw-r--r-- | gui/src/renderer/containers/AdvancedSettingsPage.tsx | 1 |
2 files changed, 26 insertions, 17 deletions
diff --git a/gui/src/renderer/components/AdvancedSettings.tsx b/gui/src/renderer/components/AdvancedSettings.tsx index dd9568bed5..4778aac916 100644 --- a/gui/src/renderer/components/AdvancedSettings.tsx +++ b/gui/src/renderer/components/AdvancedSettings.tsx @@ -3,6 +3,7 @@ import { Component, View } from 'reactxp'; import { sprintf } from 'sprintf-js'; import { BridgeState, RelayProtocol, TunnelProtocol } from '../../shared/daemon-rpc-types'; import { messages } from '../../shared/gettext'; +import { WgKeyState } from '../redux/settings/reducers'; import styles from './AdvancedSettingsStyles'; import * as Cell from './Cell'; import { Container, Layout } from './Layout'; @@ -40,6 +41,7 @@ interface IProps { protocol?: RelayProtocol; port?: number; }; + wireguardKeyState: WgKeyState; wireguard: { port?: number }; mssfix?: number; bridgeState: BridgeState; @@ -64,7 +66,6 @@ export default class AdvancedSettings extends Component<IProps, IState> { private portItems: { [key in RelayProtocol]: Array<ISelectorItem<OptionalPort>> }; private protocolItems: Array<ISelectorItem<OptionalRelayProtocol>>; private bridgeStateItems: Array<ISelectorItem<BridgeState>>; - private tunnelProtocolItems: Array<ISelectorItem<OptionalTunnelProtocol>>; private wireguardPortItems: Array<ISelectorItem<OptionalPort>>; constructor(props: IProps) { @@ -99,21 +100,6 @@ export default class AdvancedSettings extends Component<IProps, IState> { }, ]; - this.tunnelProtocolItems = [ - { - label: messages.pgettext('advanced-settings-view', 'Automatic'), - value: undefined, - }, - { - label: messages.pgettext('advanced-settings-view', 'OpenVPN'), - value: 'openvpn', - }, - { - label: messages.pgettext('advanced-settings-view', 'WireGuard'), - value: 'wireguard', - }, - ]; - this.wireguardPortItems = [automaticPort].concat( WIREUGARD_UDP_PORTS.map(mapPortToSelectorItem), ); @@ -156,6 +142,8 @@ export default class AdvancedSettings extends Component<IProps, IState> { : styles.advanced_settings__mssfix_invalid_value; const mssfixValue = this.state.editedMssfix; + const hasWireguardKey = this.props.wireguardKeyState.type === 'key-set'; + return ( <Layout> <Container> @@ -228,7 +216,7 @@ export default class AdvancedSettings extends Component<IProps, IState> { <View style={styles.advanced_settings__content}> <Selector title={messages.pgettext('advanced-settings-view', 'Tunnel protocol')} - values={this.tunnelProtocolItems} + values={this.tunnelProtocolItems(hasWireguardKey)} value={this.props.tunnelProtocol} onSelect={this.onSelectTunnelProtocol} /> @@ -348,6 +336,26 @@ export default class AdvancedSettings extends Component<IProps, IState> { ); } + private tunnelProtocolItems = ( + hasWireguardKey: boolean, + ): Array<ISelectorItem<OptionalTunnelProtocol>> => { + return [ + { + label: messages.pgettext('advanced-settings-view', 'Automatic'), + value: undefined, + }, + { + label: messages.pgettext('advanced-settings-view', 'OpenVPN'), + value: 'openvpn', + }, + { + label: messages.pgettext('advanced-settings-view', 'WireGuard'), + value: 'wireguard', + disabled: !hasWireguardKey, + }, + ]; + }; + private onSelectTunnelProtocol = (protocol?: TunnelProtocol) => { this.props.setTunnelProtocol(protocol); }; diff --git a/gui/src/renderer/containers/AdvancedSettingsPage.tsx b/gui/src/renderer/containers/AdvancedSettingsPage.tsx index fad5704a97..6cbd991325 100644 --- a/gui/src/renderer/containers/AdvancedSettingsPage.tsx +++ b/gui/src/renderer/containers/AdvancedSettingsPage.tsx @@ -16,6 +16,7 @@ const mapStateToProps = (state: IReduxState) => { return { enableIpv6: state.settings.enableIpv6, blockWhenDisconnected: state.settings.blockWhenDisconnected, + wireguardKeyState: state.settings.wireguardKeyState, mssfix: state.settings.openVpn.mssfix, bridgeState: state.settings.bridgeState, ...protocolAndPort, |
