diff options
| author | David Lönnhager <david.l@mullvad.net> | 2020-03-03 17:40:51 +0100 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2020-03-11 12:11:10 +0100 |
| commit | 12e7344fb8eb1d9070895184105a94dc96d4b2b4 (patch) | |
| tree | 6f01baedc1dfaf85358d518c623712cbee34ba19 /mullvad-daemon/src | |
| parent | 93175648ddb1187e5f5a79b9c2fea0334f406fbb (diff) | |
| download | mullvadvpn-12e7344fb8eb1d9070895184105a94dc96d4b2b4.tar.xz mullvadvpn-12e7344fb8eb1d9070895184105a94dc96d4b2b4.zip | |
Beta program option in CLI
Diffstat (limited to 'mullvad-daemon/src')
| -rw-r--r-- | mullvad-daemon/src/lib.rs | 16 | ||||
| -rw-r--r-- | mullvad-daemon/src/management_interface.rs | 13 |
2 files changed, 29 insertions, 0 deletions
diff --git a/mullvad-daemon/src/lib.rs b/mullvad-daemon/src/lib.rs index 8bc0988cc1..3f74e82df7 100644 --- a/mullvad-daemon/src/lib.rs +++ b/mullvad-daemon/src/lib.rs @@ -163,6 +163,8 @@ pub enum DaemonCommand { UpdateRelaySettings(oneshot::Sender<()>, RelaySettingsUpdate), /// Set the allow LAN setting. SetAllowLan(oneshot::Sender<()>, bool), + /// Set the beta program setting. + SetShowBetaReleases(oneshot::Sender<()>, bool), /// Set the block_when_disconnected setting. SetBlockWhenDisconnected(oneshot::Sender<()>, bool), /// Set the auto-connect setting. @@ -881,6 +883,7 @@ where } UpdateRelaySettings(tx, update) => self.on_update_relay_settings(tx, update), SetAllowLan(tx, allow_lan) => self.on_set_allow_lan(tx, allow_lan), + SetShowBetaReleases(tx, enabled) => self.on_set_show_beta_releases(tx, enabled), SetBlockWhenDisconnected(tx, block_when_disconnected) => { self.on_set_block_when_disconnected(tx, block_when_disconnected) } @@ -1290,6 +1293,19 @@ where } } + fn on_set_show_beta_releases(&mut self, tx: oneshot::Sender<()>, enabled: bool) { + let save_result = self.settings.set_show_beta_releases(enabled); + match save_result { + Ok(settings_changed) => { + Self::oneshot_send(tx, (), "set_show_beta_releases response"); + if settings_changed { + self.event_listener.notify_settings(self.settings.clone()); + } + } + Err(e) => error!("{}", e.display_chain_with_msg("Unable to save settings")), + } + } + fn on_set_block_when_disconnected( &mut self, tx: oneshot::Sender<()>, diff --git a/mullvad-daemon/src/management_interface.rs b/mullvad-daemon/src/management_interface.rs index 8da3d4dabf..cf5d403e47 100644 --- a/mullvad-daemon/src/management_interface.rs +++ b/mullvad-daemon/src/management_interface.rs @@ -69,6 +69,10 @@ build_rpc_trait! { #[rpc(meta, name = "set_allow_lan")] fn set_allow_lan(&self, Self::Metadata, bool) -> BoxFuture<(), Error>; + /// Set whether to enable the beta program. + #[rpc(meta, name = "set_show_beta_releases")] + fn set_show_beta_releases(&self, Self::Metadata, bool) -> BoxFuture<(), Error>; + /// Set if the client should allow network communication when in the disconnected state. #[rpc(meta, name = "set_block_when_disconnected")] fn set_block_when_disconnected(&self, Self::Metadata, bool) -> BoxFuture<(), Error>; @@ -437,6 +441,15 @@ impl ManagementInterfaceApi for ManagementInterface { Box::new(future) } + fn set_show_beta_releases(&self, _: Self::Metadata, enabled: bool) -> BoxFuture<(), Error> { + log::debug!("set_show_beta_releases({})", enabled); + let (tx, rx) = sync::oneshot::channel(); + let future = self + .send_command_to_daemon(DaemonCommand::SetShowBetaReleases(tx, enabled)) + .and_then(|_| rx.map_err(|_| Error::internal_error())); + Box::new(future) + } + fn set_block_when_disconnected( &self, _: Self::Metadata, |
