summaryrefslogtreecommitdiffhomepage
path: root/mullvad-daemon/src
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2020-03-03 17:40:51 +0100
committerDavid Lönnhager <david.l@mullvad.net>2020-03-11 12:11:10 +0100
commit12e7344fb8eb1d9070895184105a94dc96d4b2b4 (patch)
tree6f01baedc1dfaf85358d518c623712cbee34ba19 /mullvad-daemon/src
parent93175648ddb1187e5f5a79b9c2fea0334f406fbb (diff)
downloadmullvadvpn-12e7344fb8eb1d9070895184105a94dc96d4b2b4.tar.xz
mullvadvpn-12e7344fb8eb1d9070895184105a94dc96d4b2b4.zip
Beta program option in CLI
Diffstat (limited to 'mullvad-daemon/src')
-rw-r--r--mullvad-daemon/src/lib.rs16
-rw-r--r--mullvad-daemon/src/management_interface.rs13
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,