summaryrefslogtreecommitdiffhomepage
path: root/gui/src
diff options
context:
space:
mode:
authorOskar <oskar@mullvad.net>2024-08-29 21:51:26 +0200
committerOskar <oskar@mullvad.net>2024-08-30 20:04:00 +0200
commite5abae7800ed50a0151ab4eee9c1cf2764f948fb (patch)
tree4e170ee7df38ffd1867048b0c85dd060af70a7c3 /gui/src
parent9dbb580eb0c19ceb24275a58e7d8dc2a92a77482 (diff)
downloadmullvadvpn-e5abae7800ed50a0151ab4eee9c1cf2764f948fb.tar.xz
mullvadvpn-e5abae7800ed50a0151ab4eee9c1cf2764f948fb.zip
Add rpc and state handling of shadowsocks settings
Diffstat (limited to 'gui/src')
-rw-r--r--gui/src/main/daemon-rpc.ts19
-rw-r--r--gui/src/main/default-settings.ts3
-rw-r--r--gui/src/renderer/redux/settings/reducers.ts3
-rw-r--r--gui/src/shared/daemon-rpc-types.ts6
4 files changed, 30 insertions, 1 deletions
diff --git a/gui/src/main/daemon-rpc.ts b/gui/src/main/daemon-rpc.ts
index f328329d81..e264ef75e3 100644
--- a/gui/src/main/daemon-rpc.ts
+++ b/gui/src/main/daemon-rpc.ts
@@ -388,6 +388,11 @@ export class DaemonRpc {
grpcTypes.ObfuscationSettings.SelectedObfuscation.OFF,
);
break;
+ case ObfuscationType.shadowsocks:
+ grpcObfuscationSettings.setSelectedObfuscation(
+ grpcTypes.ObfuscationSettings.SelectedObfuscation.SHADOWSOCKS,
+ );
+ break;
case ObfuscationType.udp2tcp:
grpcObfuscationSettings.setSelectedObfuscation(
grpcTypes.ObfuscationSettings.SelectedObfuscation.UDP2TCP,
@@ -403,7 +408,13 @@ export class DaemonRpc {
grpcObfuscationSettings.setUdp2tcp(grpcUdp2tcpSettings);
}
- grpcObfuscationSettings.setShadowsocks(new grpcTypes.ShadowsocksSettings());
+ if (obfuscationSettings.shadowsocksSettings) {
+ const shadowsocksSettings = new grpcTypes.ShadowsocksSettings();
+ if (obfuscationSettings.shadowsocksSettings.port !== 'any') {
+ shadowsocksSettings.setPort(obfuscationSettings.shadowsocksSettings.port.only);
+ }
+ grpcObfuscationSettings.setShadowsocks(shadowsocksSettings);
+ }
await this.call<grpcTypes.ObfuscationSettings, Empty>(
this.client.setObfuscationSettings,
@@ -1470,6 +1481,9 @@ function convertFromObfuscationSettings(
case grpcTypes.ObfuscationSettings.SelectedObfuscation.UDP2TCP:
selectedObfuscationType = ObfuscationType.udp2tcp;
break;
+ case grpcTypes.ObfuscationSettings.SelectedObfuscation.SHADOWSOCKS:
+ selectedObfuscationType = ObfuscationType.shadowsocks;
+ break;
}
return {
@@ -1477,6 +1491,9 @@ function convertFromObfuscationSettings(
udp2tcpSettings: obfuscationSettings?.udp2tcp
? { port: convertFromConstraint(obfuscationSettings.udp2tcp.port) }
: { port: 'any' },
+ shadowsocksSettings: obfuscationSettings?.shadowsocks
+ ? { port: convertFromConstraint(obfuscationSettings.shadowsocks.port) }
+ : { port: 'any' },
};
}
diff --git a/gui/src/main/default-settings.ts b/gui/src/main/default-settings.ts
index e942a535b6..e11a7434e1 100644
--- a/gui/src/main/default-settings.ts
+++ b/gui/src/main/default-settings.ts
@@ -74,6 +74,9 @@ export function getDefaultSettings(): ISettings {
udp2tcpSettings: {
port: 'any',
},
+ shadowsocksSettings: {
+ port: 'any',
+ },
},
customLists: [],
apiAccessMethods: getDefaultApiAccessMethods(),
diff --git a/gui/src/renderer/redux/settings/reducers.ts b/gui/src/renderer/redux/settings/reducers.ts
index eae413fe22..6eb595467b 100644
--- a/gui/src/renderer/redux/settings/reducers.ts
+++ b/gui/src/renderer/redux/settings/reducers.ts
@@ -188,6 +188,9 @@ const initialState: ISettingsReduxState = {
udp2tcpSettings: {
port: 'any',
},
+ shadowsocksSettings: {
+ port: 'any',
+ },
},
customLists: [],
apiAccessMethods: getDefaultApiAccessMethods(),
diff --git a/gui/src/shared/daemon-rpc-types.ts b/gui/src/shared/daemon-rpc-types.ts
index ed588ff811..40c692e1ba 100644
--- a/gui/src/shared/daemon-rpc-types.ts
+++ b/gui/src/shared/daemon-rpc-types.ts
@@ -451,15 +451,21 @@ export type Udp2TcpObfuscationSettings = {
port: Constraint<number>;
};
+export type ShadowsocksSettings = {
+ port: Constraint<number>;
+};
+
export enum ObfuscationType {
auto,
off,
udp2tcp,
+ shadowsocks,
}
export type ObfuscationSettings = {
selectedObfuscation: ObfuscationType;
udp2tcpSettings: Udp2TcpObfuscationSettings;
+ shadowsocksSettings: ShadowsocksSettings;
};
export interface IBridgeConstraints {