diff options
| author | David Lönnhager <david.l@mullvad.net> | 2022-02-16 16:00:54 +0100 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2022-02-18 09:44:54 +0100 |
| commit | be587f51bc9d9c9d219e6a8fb10b6b6ec7f094d1 (patch) | |
| tree | 7fef10f07724d5e3aa57094f7229e29b15f53ff3 | |
| parent | da46978de470a3c6a1333817bc70d82d98e2b9d1 (diff) | |
| download | mullvadvpn-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.rs | 16 |
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( |
