summaryrefslogtreecommitdiffhomepage
path: root/app/lib
diff options
context:
space:
mode:
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]);
}