diff options
Diffstat (limited to 'gui/src/shared')
| -rw-r--r-- | gui/src/shared/daemon-rpc-types.ts | 3 | ||||
| -rw-r--r-- | gui/src/shared/relay-settings-builder.ts | 12 |
2 files changed, 15 insertions, 0 deletions
diff --git a/gui/src/shared/daemon-rpc-types.ts b/gui/src/shared/daemon-rpc-types.ts index 0ce24bf8a2..8e42147f43 100644 --- a/gui/src/shared/daemon-rpc-types.ts +++ b/gui/src/shared/daemon-rpc-types.ts @@ -130,10 +130,13 @@ export interface IOpenVpnConstraints { export interface IWireguardConstraints { port: Constraint<number>; + ipVersion: Constraint<IpVersion>; } export type TunnelProtocol = 'wireguard' | 'openvpn'; +export type IpVersion = 'ipv4' | 'ipv6'; + interface IRelaySettingsNormal<OpenVpn, Wireguard> { location: Constraint<RelayLocation>; tunnelProtocol: Constraint<TunnelProtocol>; diff --git a/gui/src/shared/relay-settings-builder.ts b/gui/src/shared/relay-settings-builder.ts index 182e44063f..418de10888 100644 --- a/gui/src/shared/relay-settings-builder.ts +++ b/gui/src/shared/relay-settings-builder.ts @@ -1,6 +1,7 @@ import { Constraint, IOpenVpnConstraints, + IpVersion, IWireguardConstraints, RelayProtocol, RelaySettingsNormalUpdate, @@ -21,6 +22,7 @@ interface IOpenVPNConfigurator { interface IWireguardConfigurator { port: IExactOrAny<number, IWireguardConfigurator>; + ipVersion: IExactOrAny<IpVersion, IWireguardConfigurator>; } interface ITunnelProtocolConfigurator { @@ -125,6 +127,16 @@ class NormalRelaySettingsBuilder { any: () => apply('any'), }; }, + get ipVersion() { + const apply = (ipVersion: Constraint<IpVersion>) => { + updateWireguard({ ipVersion }); + return this; + }; + return { + exact: (value: IpVersion) => apply({ only: value }), + any: () => apply('any'), + }; + }, }; configurator(wireguardBuilder); return this; |
