summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2022-02-16 16:00:54 +0100
committerDavid Lönnhager <david.l@mullvad.net>2022-02-18 09:44:54 +0100
commitbe587f51bc9d9c9d219e6a8fb10b6b6ec7f094d1 (patch)
tree7fef10f07724d5e3aa57094f7229e29b15f53ff3
parentda46978de470a3c6a1333817bc70d82d98e2b9d1 (diff)
downloadmullvadvpn-be587f51bc9d9c9d219e6a8fb10b6b6ec7f094d1.tar.xz
mullvadvpn-be587f51bc9d9c9d219e6a8fb10b6b6ec7f094d1.zip
Set `show_beta_releases` to true when obtaining fresh settings, if running a beta version, to prevent fresh settings from being written to disk twice
-rw-r--r--mullvad-daemon/src/settings.rs16
1 files changed, 13 insertions, 3 deletions
diff --git a/mullvad-daemon/src/settings.rs b/mullvad-daemon/src/settings.rs
index 455b1775ed..32a06020e2 100644
--- a/mullvad-daemon/src/settings.rs
+++ b/mullvad-daemon/src/settings.rs
@@ -59,7 +59,7 @@ impl SettingsPersister {
"{}",
error.display_chain_with_msg("Failed to load settings. Using defaults.")
);
- (Settings::default(), true)
+ (Self::default_settings(), true)
}
};
@@ -91,7 +91,7 @@ impl SettingsPersister {
Err(error) => {
if error.kind() == io::ErrorKind::NotFound {
log::info!("No settings were found. Using defaults.");
- return Ok((Settings::default(), true));
+ return Ok((Self::default_settings(), true));
} else {
return Err(Error::ReadError(path.display().to_string(), error));
}
@@ -152,7 +152,7 @@ impl SettingsPersister {
/// Resets default settings
#[cfg(not(target_os = "android"))]
pub async fn reset(&mut self) -> Result<(), Error> {
- self.settings = Settings::default();
+ self.settings = Self::default_settings();
let path = self.path.clone();
self.save()
.or_else(|e| async move {
@@ -172,6 +172,16 @@ impl SettingsPersister {
self.settings.clone()
}
+ /// Modifies `Settings::default()` somewhat, e.g. depending on whether a beta version
+ /// is being run or not.
+ fn default_settings() -> Settings {
+ let mut settings = Settings::default();
+ if crate::version::is_beta_version() {
+ settings.show_beta_releases = true;
+ }
+ settings
+ }
+
/// Changes account number to the one given. Also saves the new settings to disk.
/// The boolean in the Result indicates if the account token changed or not
pub async fn set_account_token(