summaryrefslogtreecommitdiffhomepage
path: root/gui/src/shared
diff options
context:
space:
mode:
Diffstat (limited to 'gui/src/shared')
-rw-r--r--gui/src/shared/daemon-rpc-types.ts3
-rw-r--r--gui/src/shared/relay-settings-builder.ts12
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;