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.ts9
-rw-r--r--gui/src/shared/relay-settings-builder.ts19
2 files changed, 28 insertions, 0 deletions
diff --git a/gui/src/shared/daemon-rpc-types.ts b/gui/src/shared/daemon-rpc-types.ts
index 300af97660..3f026b032c 100644
--- a/gui/src/shared/daemon-rpc-types.ts
+++ b/gui/src/shared/daemon-rpc-types.ts
@@ -14,6 +14,7 @@ export interface ILocation {
mullvadExitIp: boolean;
hostname?: string;
bridgeHostname?: string;
+ entryHostname?: string;
provider?: string;
}
@@ -88,6 +89,12 @@ export interface ITunnelEndpoint {
protocol: RelayProtocol;
tunnelType: TunnelType;
proxy?: IProxyEndpoint;
+ entryEndpoint?: IEndpoint;
+}
+
+export interface IEndpoint {
+ address: string;
+ transportProtocol: RelayProtocol;
}
export interface IProxyEndpoint {
@@ -133,6 +140,8 @@ export interface IOpenVpnConstraints {
export interface IWireguardConstraints {
port: Constraint<number>;
ipVersion: Constraint<IpVersion>;
+ useMultihop: boolean;
+ entryLocation: Constraint<RelayLocation>;
}
export type TunnelProtocol = 'wireguard' | 'openvpn';
diff --git a/gui/src/shared/relay-settings-builder.ts b/gui/src/shared/relay-settings-builder.ts
index 418de10888..e4c11e5132 100644
--- a/gui/src/shared/relay-settings-builder.ts
+++ b/gui/src/shared/relay-settings-builder.ts
@@ -3,6 +3,7 @@ import {
IOpenVpnConstraints,
IpVersion,
IWireguardConstraints,
+ RelayLocation,
RelayProtocol,
RelaySettingsNormalUpdate,
RelaySettingsUpdate,
@@ -23,6 +24,8 @@ interface IOpenVPNConfigurator {
interface IWireguardConfigurator {
port: IExactOrAny<number, IWireguardConfigurator>;
ipVersion: IExactOrAny<IpVersion, IWireguardConfigurator>;
+ useMultihop: (value: boolean) => IWireguardConfigurator;
+ entryLocation: IExactOrAny<RelayLocation, IWireguardConfigurator>;
}
interface ITunnelProtocolConfigurator {
@@ -137,6 +140,22 @@ class NormalRelaySettingsBuilder {
any: () => apply('any'),
};
},
+ get useMultihop() {
+ return (useMultihop: boolean) => {
+ updateWireguard({ useMultihop });
+ return this;
+ };
+ },
+ get entryLocation() {
+ const apply = (entryLocation: Constraint<RelayLocation> | undefined) => {
+ updateWireguard({ entryLocation });
+ return this;
+ };
+ return {
+ exact: (entryLocation: RelayLocation) => apply({ only: entryLocation }),
+ any: () => apply('any'),
+ };
+ },
};
configurator(wireguardBuilder);
return this;