summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOskar Nyberg <oskar@mullvad.net>2021-07-19 11:45:38 +0200
committerOskar Nyberg <oskar@mullvad.net>2021-08-17 08:40:52 +0200
commitac6e37692d40f2209191b0bb8d2bcac4b51de377 (patch)
tree965ad218649ff070a4eafa1843272946ee1f73cd
parent7995fe3a3a042b1fcde04d72b4d8cea0e5f93984 (diff)
downloadmullvadvpn-ac6e37692d40f2209191b0bb8d2bcac4b51de377.tar.xz
mullvadvpn-ac6e37692d40f2209191b0bb8d2bcac4b51de377.zip
Add provider to daemon rpc types
-rw-r--r--gui/src/main/daemon-rpc.ts11
-rw-r--r--gui/src/main/index.ts2
-rw-r--r--gui/src/shared/bridge-settings-builder.ts1
-rw-r--r--gui/src/shared/daemon-rpc-types.ts4
4 files changed, 18 insertions, 0 deletions
diff --git a/gui/src/main/daemon-rpc.ts b/gui/src/main/daemon-rpc.ts
index 28b8e651dc..1c3e9a67ba 100644
--- a/gui/src/main/daemon-rpc.ts
+++ b/gui/src/main/daemon-rpc.ts
@@ -293,6 +293,12 @@ export class DaemonRpc {
);
}
+ if (settingsUpdate.providers) {
+ const providerUpdate = new grpcTypes.ProviderUpdate();
+ providerUpdate.setProvidersList(settingsUpdate.providers);
+ normalUpdate.setProviders(providerUpdate);
+ }
+
grpcRelaySettings.setNormal(normalUpdate);
await this.call<grpcTypes.RelaySettingsUpdate, Empty>(
this.client.updateRelaySettings,
@@ -924,6 +930,7 @@ function convertFromRelaySettings(
? { only: convertFromLocation(grpcLocation.toObject()) }
: 'any';
const tunnelProtocol = convertFromTunnelTypeConstraint(normal.getTunnelType()!);
+ const providers = normal.getProvidersList();
const openvpnConstraints = convertFromOpenVpnConstraints(normal.getOpenvpnConstraints()!);
const wireguardConstraints = convertFromWireguardConstraints(
normal.getWireguardConstraints()!,
@@ -933,6 +940,7 @@ function convertFromRelaySettings(
normal: {
location,
tunnelProtocol,
+ providers,
wireguardConstraints,
openvpnConstraints,
},
@@ -951,9 +959,11 @@ function convertFromBridgeSettings(
if (normalSettings) {
const grpcLocation = normalSettings.location;
const location = grpcLocation ? { only: convertFromLocation(grpcLocation) } : 'any';
+ const providers = normalSettings.providersList;
return {
normal: {
location,
+ providers,
},
};
}
@@ -1177,6 +1187,7 @@ function convertToNormalBridgeSettings(
): grpcTypes.BridgeSettings.BridgeConstraints {
const normalBridgeSettings = new grpcTypes.BridgeSettings.BridgeConstraints();
normalBridgeSettings.setLocation(convertToLocation(liftConstraint(constraints.location)));
+ normalBridgeSettings.setProvidersList(constraints.providers);
return normalBridgeSettings;
}
diff --git a/gui/src/main/index.ts b/gui/src/main/index.ts
index a81324fd27..95771c5878 100644
--- a/gui/src/main/index.ts
+++ b/gui/src/main/index.ts
@@ -136,6 +136,7 @@ class ApplicationMain {
normal: {
location: 'any',
tunnelProtocol: 'any',
+ providers: [],
openvpnConstraints: {
port: 'any',
protocol: 'any',
@@ -148,6 +149,7 @@ class ApplicationMain {
bridgeSettings: {
normal: {
location: 'any',
+ providers: [],
},
},
bridgeState: 'auto',
diff --git a/gui/src/shared/bridge-settings-builder.ts b/gui/src/shared/bridge-settings-builder.ts
index 28e701ec0a..fc4eeaa682 100644
--- a/gui/src/shared/bridge-settings-builder.ts
+++ b/gui/src/shared/bridge-settings-builder.ts
@@ -9,6 +9,7 @@ export default class BridgeSettingsBuilder {
return {
normal: {
location: this.payload.location,
+ providers: this.payload.providers ?? [],
},
};
} else {
diff --git a/gui/src/shared/daemon-rpc-types.ts b/gui/src/shared/daemon-rpc-types.ts
index 4c806b11b8..0ce24bf8a2 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;
+ provider?: string;
}
export type FirewallPolicyError =
@@ -136,6 +137,7 @@ export type TunnelProtocol = 'wireguard' | 'openvpn';
interface IRelaySettingsNormal<OpenVpn, Wireguard> {
location: Constraint<RelayLocation>;
tunnelProtocol: Constraint<TunnelProtocol>;
+ providers: string[];
openvpnConstraints: OpenVpn;
wireguardConstraints: Wireguard;
}
@@ -213,6 +215,7 @@ export interface IRelayListCity {
export interface IRelayListHostname {
hostname: string;
+ provider: string;
ipv4AddrIn: string;
includeInCountry: boolean;
active: boolean;
@@ -340,6 +343,7 @@ export type SplitTunnelSettings = {
export interface IBridgeConstraints {
location: Constraint<RelayLocation>;
+ providers: string[];
}
export type BridgeSettings = { normal: IBridgeConstraints } | { custom: ProxySettings };