diff options
| author | Oskar Nyberg <oskar@mullvad.net> | 2022-01-03 14:23:02 +0100 |
|---|---|---|
| committer | Oskar Nyberg <oskar@mullvad.net> | 2022-01-03 14:23:02 +0100 |
| commit | 5e72bac67addd36682443568de651fc05cd6e207 (patch) | |
| tree | 750ac3f0737f4580258c69540e491303ac619461 /gui/src/renderer/lib | |
| parent | f4cd4fc51955874f7e7ac13636b63ecfa8f9eaf3 (diff) | |
| parent | c7027fac2b5db7a2a19f1f79137b1a2d371335cb (diff) | |
| download | mullvadvpn-5e72bac67addd36682443568de651fc05cd6e207.tar.xz mullvadvpn-5e72bac67addd36682443568de651fc05cd6e207.zip | |
Merge branch 'add-wg-multihop'
Diffstat (limited to 'gui/src/renderer/lib')
| -rw-r--r-- | gui/src/renderer/lib/constraint-updater.ts | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/gui/src/renderer/lib/constraint-updater.ts b/gui/src/renderer/lib/constraint-updater.ts new file mode 100644 index 0000000000..ce9f49f376 --- /dev/null +++ b/gui/src/renderer/lib/constraint-updater.ts @@ -0,0 +1,36 @@ +import { RelaySettingsRedux } from '../redux/settings/reducers'; +import RelaySettingsBuilder from '../../shared/relay-settings-builder'; + +export function createWireguardRelayUpdater( + relaySettings: RelaySettingsRedux, +): ReturnType<typeof RelaySettingsBuilder['normal']> { + if ('normal' in relaySettings) { + const constraints = relaySettings.normal.wireguard; + + const relayUpdate = RelaySettingsBuilder.normal().tunnel.wireguard((wireguard) => { + if (constraints.port === 'any') { + wireguard.port.any(); + } else { + wireguard.port.exact(constraints.port); + } + + if (constraints.ipVersion === 'any') { + wireguard.ipVersion.any(); + } else { + wireguard.ipVersion.exact(constraints.ipVersion); + } + + wireguard.useMultihop(constraints.useMultihop); + + if (constraints.entryLocation === 'any') { + wireguard.entryLocation.any(); + } else if (constraints.entryLocation !== undefined) { + wireguard.entryLocation.exact(constraints.entryLocation); + } + }); + + return relayUpdate; + } else { + return RelaySettingsBuilder.normal(); + } +} |
