diff options
| author | Oskar <oskar@mullvad.net> | 2024-08-29 21:51:26 +0200 |
|---|---|---|
| committer | Oskar <oskar@mullvad.net> | 2024-08-30 20:04:00 +0200 |
| commit | e5abae7800ed50a0151ab4eee9c1cf2764f948fb (patch) | |
| tree | 4e170ee7df38ffd1867048b0c85dd060af70a7c3 /gui/src | |
| parent | 9dbb580eb0c19ceb24275a58e7d8dc2a92a77482 (diff) | |
| download | mullvadvpn-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.ts | 19 | ||||
| -rw-r--r-- | gui/src/main/default-settings.ts | 3 | ||||
| -rw-r--r-- | gui/src/renderer/redux/settings/reducers.ts | 3 | ||||
| -rw-r--r-- | gui/src/shared/daemon-rpc-types.ts | 6 |
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 { |
