diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2018-08-07 17:08:35 -0300 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2018-08-14 08:41:17 -0300 |
| commit | b600d4b9b409491dd24d044d214b592d755608e6 (patch) | |
| tree | b16b51ca760c00eaa81c8903690060e331cfa9c4 /app/lib | |
| parent | 8bfbdd501489b1163b6c7e8a2b8de823b5ab0e63 (diff) | |
| download | mullvadvpn-b600d4b9b409491dd24d044d214b592d755608e6.tar.xz mullvadvpn-b600d4b9b409491dd24d044d214b592d755608e6.zip | |
Implement IPv6 enable/disable in GUI
Diffstat (limited to 'app/lib')
| -rw-r--r-- | app/lib/daemon-rpc.js | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/app/lib/daemon-rpc.js b/app/lib/daemon-rpc.js index a8b986c68f..8e2925f83e 100644 --- a/app/lib/daemon-rpc.js +++ b/app/lib/daemon-rpc.js @@ -182,6 +182,19 @@ const RelayListSchema = object({ ), }); +export type TunnelOptions = { + openvpn: { + enableIpv6: boolean, + }, +}; + +const TunnelOptionsSchema = object({ + openvpn: object({ + enable_ipv6: boolean, + mssfix: maybe(number), + }), +}); + const AccountDataSchema = object({ expiry: string, }); @@ -203,6 +216,8 @@ export interface DaemonRpcProtocol { getRelaySettings(): Promise<RelaySettings>; setAllowLan(boolean): Promise<void>; getAllowLan(): Promise<boolean>; + setOpenVpnEnableIpv6(boolean): Promise<void>; + getTunnelOptions(): Promise<TunnelOptions>; setAutoConnect(boolean): Promise<void>; getAutoConnect(): Promise<boolean>; connectTunnel(): Promise<void>; @@ -356,6 +371,25 @@ export class DaemonRpc implements DaemonRpcProtocol { } } + async setOpenVpnEnableIpv6(enableIpv6: boolean): Promise<void> { + await this._transport.send('set_openvpn_enable_ipv6', [enableIpv6]); + } + + async getTunnelOptions(): Promise<TunnelOptions> { + const response = await this._transport.send('get_tunnel_options'); + try { + const validatedObject = validate(TunnelOptionsSchema, response); + + return { + openvpn: { + enableIpv6: validatedObject.openvpn.enable_ipv6, + }, + }; + } catch (error) { + throw new ResponseParseError('Invalid response from get_tunnel_options', error); + } + } + async setAutoConnect(autoConnect: boolean): Promise<void> { await this._transport.send('set_auto_connect', [autoConnect]); } |
