summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2022-05-09 16:07:31 +0200
committerDavid Lönnhager <david.l@mullvad.net>2022-05-10 13:28:31 +0200
commit21a44b75d95b83d328365ad0cafba75f693d526d (patch)
tree58f258e631828f1ae999719b6eea9b8beef6ab4d
parentd1a6df20734da7af43351c96d83de941e3b7b034 (diff)
downloadmullvadvpn-21a44b75d95b83d328365ad0cafba75f693d526d.tar.xz
mullvadvpn-21a44b75d95b83d328365ad0cafba75f693d526d.zip
Return initial device when spawning the account manager
-rw-r--r--mullvad-daemon/src/device/mod.rs8
-rw-r--r--mullvad-daemon/src/lib.rs6
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,