diff options
| author | Linus Färnstrand <linus@mullvad.net> | 2017-07-17 18:02:24 +0200 |
|---|---|---|
| committer | Linus Färnstrand <linus@mullvad.net> | 2017-07-17 18:02:24 +0200 |
| commit | 80ae0f45cd7397b022e21faab2d7144b565fd379 (patch) | |
| tree | 9d28fc98935ba1ab3aa39b23ea86da856e7aae29 | |
| parent | 53c041eaebaf720a05bd24c59e3a156b66308895 (diff) | |
| download | mullvadvpn-80ae0f45cd7397b022e21faab2d7144b565fd379.tar.xz mullvadvpn-80ae0f45cd7397b022e21faab2d7144b565fd379.zip | |
Move settings changing into method on Settings
| -rw-r--r-- | mullvad-daemon/src/main.rs | 15 | ||||
| -rw-r--r-- | mullvad-daemon/src/settings.rs | 31 |
2 files changed, 30 insertions, 16 deletions
diff --git a/mullvad-daemon/src/main.rs b/mullvad-daemon/src/main.rs index 505a9b41b0..bfaa1827c9 100644 --- a/mullvad-daemon/src/main.rs +++ b/mullvad-daemon/src/main.rs @@ -272,16 +272,11 @@ impl Daemon { } } SetAccount(account_token) => { - info!( - "Changing account token from {} to {}", - self.settings.account_token.as_ref().unwrap_or(&"[nothing]".to_owned()), - account_token.as_ref().unwrap_or(&"[nothing]".to_owned()) - ); - self.settings.account_token = account_token; + self.settings.set_account_token(account_token); self.save_settings(); } GetAccount(tx) => { - if let Err(_) = tx.send(self.settings.account_token.clone()) { + if let Err(_) = tx.send(self.settings.get_account_token()) { warn!("Unable to send current account to management interface client"); } } @@ -387,10 +382,8 @@ impl Daemon { ); let remote = self.remote_iter.next().unwrap(); let account_token = self.settings - .account_token - .as_ref() - .ok_or(ErrorKind::InvalidSettings("No account token"))? - .clone(); + .get_account_token() + .ok_or(ErrorKind::InvalidSettings("No account token"))?; let tunnel_monitor = self.spawn_tunnel_monitor(remote, &account_token)?; self.tunnel_close_handle = Some(tunnel_monitor.close_handle()); self.spawn_tunnel_monitor_wait_thread(tunnel_monitor); diff --git a/mullvad-daemon/src/settings.rs b/mullvad-daemon/src/settings.rs index b22888e76e..589f02c8e6 100644 --- a/mullvad-daemon/src/settings.rs +++ b/mullvad-daemon/src/settings.rs @@ -35,7 +35,7 @@ static SETTINGS_FILE: &str = "settings.toml"; #[derive(Debug, Clone, Deserialize, Serialize, Default)] pub struct Settings { - pub account_token: Option<String>, + account_token: Option<String>, } impl Settings { @@ -70,6 +70,11 @@ impl Settings { Ok(()) } + fn get_settings_path() -> Result<PathBuf> { + let dir = app_dirs::app_root(AppDataType::UserConfig, &APP_INFO) + .chain_err(|| ErrorKind::DirectoryError)?; + Ok(dir.join(SETTINGS_FILE)) + } fn read_settings(file: &mut File, path: PathBuf) -> Result<Settings> { let mut data = Vec::new(); @@ -77,9 +82,25 @@ impl Settings { toml::from_slice(&data).chain_err(|| ErrorKind::ParseError) } - fn get_settings_path() -> Result<PathBuf> { - let dir = app_dirs::app_root(AppDataType::UserConfig, &APP_INFO) - .chain_err(|| ErrorKind::DirectoryError)?; - Ok(dir.join(SETTINGS_FILE)) + pub fn get_account_token(&self) -> Option<String> { + self.account_token.clone() + } + + pub fn set_account_token(&mut self, account_token: Option<String>) { + if account_token != self.account_token { + info!( + "Changing account token from {} to {}", + Self::format_account_token(&self.account_token), + Self::format_account_token(&account_token), + ); + self.account_token = account_token; + } + } + + fn format_account_token(account_token: &Option<String>) -> String { + match *account_token { + Some(ref account_token) => format!("\"{}\"", account_token), + None => "[none]".to_owned(), + } } } |
