summaryrefslogtreecommitdiffhomepage
path: root/gui/src/shared
diff options
context:
space:
mode:
authorEmīls Piņķis <emils@mullvad.net>2019-07-26 14:02:22 +0100
committerEmīls Piņķis <emils@mullvad.net>2019-07-26 14:02:22 +0100
commitde69ea02e31dc5b11daabfa3b0859ce99c056363 (patch)
treee9e2225a1896f66c9811b3d873eb1ccdd9da7f48 /gui/src/shared
parent7f643ec222675ea9d4bd90286c3aae578c1f0133 (diff)
parent7484bf97ee46fe396350ed515ff12fef48eb2c91 (diff)
downloadmullvadvpn-de69ea02e31dc5b11daabfa3b0859ce99c056363.tar.xz
mullvadvpn-de69ea02e31dc5b11daabfa3b0859ce99c056363.zip
Merge branch 'persistent-tunnel-constraints'
Diffstat (limited to 'gui/src/shared')
-rw-r--r--gui/src/shared/daemon-rpc-types.ts23
1 files changed, 15 insertions, 8 deletions
diff --git a/gui/src/shared/daemon-rpc-types.ts b/gui/src/shared/daemon-rpc-types.ts
index 5d2c77d223..8dc87cc2b1 100644
--- a/gui/src/shared/daemon-rpc-types.ts
+++ b/gui/src/shared/daemon-rpc-types.ts
@@ -44,6 +44,13 @@ export function tunnelTypeToString(tunnel: TunnelType): string {
export type RelayProtocol = 'tcp' | 'udp';
+export function liftConstraint<T>(constraint: 'any' | { only: T }): 'any' | T {
+ if (constraint === 'any') {
+ return 'any';
+ }
+ return constraint.only;
+}
+
export type ProxyType = 'shadowsocks' | 'custom';
export function proxyTypeToString(proxy: ProxyType): string {
switch (proxy) {
@@ -101,19 +108,21 @@ export interface IWireguardConstraints {
port: 'any' | { only: number };
}
-type TunnelConstraints<OpenVpn, Wireguard> = { wireguard: Wireguard } | { openvpn: OpenVpn };
+export type TunnelProtocol = 'wireguard' | 'openvpn';
-interface IRelaySettingsNormal<TTunnelConstraints> {
+interface IRelaySettingsNormal<OpenVpn, Wireguard> {
location:
| 'any'
| {
only: RelayLocation;
};
- tunnel:
+ tunnelProtocol:
| 'any'
| {
- only: TTunnelConstraints;
+ only: TunnelProtocol;
};
+ openvpnConstraints: OpenVpn;
+ wireguardConstraints: Wireguard;
}
export type ConnectionConfig =
@@ -150,7 +159,7 @@ export interface IRelaySettingsCustom {
}
export type RelaySettings =
| {
- normal: IRelaySettingsNormal<TunnelConstraints<IOpenVpnConstraints, IWireguardConstraints>>;
+ normal: IRelaySettingsNormal<IOpenVpnConstraints, IWireguardConstraints>;
}
| {
customTunnelEndpoint: IRelaySettingsCustom;
@@ -158,9 +167,7 @@ export type RelaySettings =
// types describing the partial update of RelaySettings
export type RelaySettingsNormalUpdate = Partial<
- IRelaySettingsNormal<
- TunnelConstraints<Partial<IOpenVpnConstraints>, Partial<IWireguardConstraints>>
- >
+ IRelaySettingsNormal<Partial<IOpenVpnConstraints>, Partial<IWireguardConstraints>>
>;
export type RelaySettingsUpdate =