summaryrefslogtreecommitdiffhomepage
path: root/app/lib
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2018-08-07 17:08:35 -0300
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2018-08-14 08:41:17 -0300
commitb600d4b9b409491dd24d044d214b592d755608e6 (patch)
treeb16b51ca760c00eaa81c8903690060e331cfa9c4 /app/lib
parent8bfbdd501489b1163b6c7e8a2b8de823b5ab0e63 (diff)
downloadmullvadvpn-b600d4b9b409491dd24d044d214b592d755608e6.tar.xz
mullvadvpn-b600d4b9b409491dd24d044d214b592d755608e6.zip
Implement IPv6 enable/disable in GUI
Diffstat (limited to 'app/lib')
-rw-r--r--app/lib/daemon-rpc.js34
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]);
}