diff options
| author | David Lönnhager <david.l@mullvad.net> | 2022-05-09 16:07:31 +0200 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2022-05-10 13:28:31 +0200 |
| commit | 21a44b75d95b83d328365ad0cafba75f693d526d (patch) | |
| tree | 58f258e631828f1ae999719b6eea9b8beef6ab4d | |
| parent | d1a6df20734da7af43351c96d83de941e3b7b034 (diff) | |
| download | mullvadvpn-21a44b75d95b83d328365ad0cafba75f693d526d.tar.xz mullvadvpn-21a44b75d95b83d328365ad0cafba75f693d526d.zip | |
Return initial device when spawning the account manager
| -rw-r--r-- | mullvad-daemon/src/device/mod.rs | 8 | ||||
| -rw-r--r-- | mullvad-daemon/src/lib.rs | 6 |
2 files changed, 6 insertions, 8 deletions
diff --git a/mullvad-daemon/src/device/mod.rs b/mullvad-daemon/src/device/mod.rs index 62d161740a..ebf51c5210 100644 --- a/mullvad-daemon/src/device/mod.rs +++ b/mullvad-daemon/src/device/mod.rs @@ -285,12 +285,14 @@ pub(crate) struct AccountManager { } impl AccountManager { + /// Starts the account manager actor and returns a handle to it as well as the + /// current device. pub async fn spawn( rest_handle: rest::MullvadRestHandle, settings_dir: &Path, initial_rotation_interval: RotationInterval, listener_tx: impl Sender<PrivateDeviceEvent> + Send + 'static, - ) -> Result<AccountManagerHandle, Error> { + ) -> Result<(AccountManagerHandle, Option<PrivateAccountAndDevice>), Error> { let (cacher, data) = DeviceCacher::new(settings_dir).await?; let token = data.as_ref().map(|state| state.account_token.clone()); let api_availability = rest_handle.availability.clone(); @@ -303,7 +305,7 @@ impl AccountManager { let manager = AccountManager { cacher, device_service: device_service.clone(), - data, + data: data.clone(), rotation_interval: initial_rotation_interval, listeners: vec![Box::new(listener_tx)], last_validation: None, @@ -318,7 +320,7 @@ impl AccountManager { account_service, device_service, }; - Ok(handle) + Ok((handle, data)) } async fn run(mut self, mut cmd_rx: mpsc::UnboundedReceiver<AccountManagerCommand>) { diff --git a/mullvad-daemon/src/lib.rs b/mullvad-daemon/src/lib.rs index 1e65374d64..fee22f1d70 100644 --- a/mullvad-daemon/src/lib.rs +++ b/mullvad-daemon/src/lib.rs @@ -597,7 +597,7 @@ where migrations::MigrationComplete::new(true) }; - let account_manager = device::AccountManager::spawn( + let (account_manager, data) = device::AccountManager::spawn( api_handle.clone(), &settings_dir, settings @@ -609,10 +609,6 @@ where ) .await .map_err(Error::LoadAccountManager)?; - let data = account_manager - .data() - .await - .map_err(Error::LoadAccountManager)?; let account_history = account_history::AccountHistory::new( &settings_dir, |
