diff options
| author | David Lönnhager <david.l@mullvad.net> | 2022-03-07 09:20:21 +0100 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2022-03-14 12:08:54 +0100 |
| commit | 102ab5f8177a23babe4e2f3f4f986d9e08cbd908 (patch) | |
| tree | 161430bcc1ea669193191edd4bbf63fa8f9da3c9 | |
| parent | 0985a987a10d19078efa30eba7fdde0821dcf2be (diff) | |
| download | mullvadvpn-102ab5f8177a23babe4e2f3f4f986d9e08cbd908.tar.xz mullvadvpn-102ab5f8177a23babe4e2f3f4f986d9e08cbd908.zip | |
Remove new account event
| -rw-r--r-- | mullvad-daemon/src/lib.rs | 60 |
1 files changed, 22 insertions, 38 deletions
diff --git a/mullvad-daemon/src/lib.rs b/mullvad-daemon/src/lib.rs index 2be83a3ed9..6d52b31dc4 100644 --- a/mullvad-daemon/src/lib.rs +++ b/mullvad-daemon/src/lib.rs @@ -346,8 +346,6 @@ pub(crate) enum InternalDaemonEvent { Command(DaemonCommand), /// Daemon shutdown triggered by a signal, ctrl-c or similar. TriggerShutdown, - /// New Account created - NewAccountEvent(AccountToken, oneshot::Sender<Result<String, Error>>), /// The background job fetching new `AppVersionInfo`s got a new info object. NewAppVersionInfo(AppVersionInfo), /// Request from REST client to use a different API endpoint. @@ -932,9 +930,6 @@ where } Command(command) => self.handle_command(command).await, TriggerShutdown => self.trigger_shutdown_event(), - NewAccountEvent(account_token, tx) => { - self.handle_new_account_event(account_token, tx).await - } NewAppVersionInfo(app_version_info) => { self.handle_new_app_version_info(app_version_info) } @@ -1337,26 +1332,6 @@ where } } - async fn handle_new_account_event( - &mut self, - new_token: AccountToken, - tx: ResponseTx<String, Error>, - ) { - match self.set_account(Some(new_token.clone())).await { - Ok(_) => { - self.set_target_state(TargetState::Unsecured).await; - let _ = tx.send(Ok(new_token)); - } - Err(error) => { - log::error!( - "{}", - error.display_chain_with_msg("Handling new account failed") - ); - let _ = tx.send(Err(error)); - } - }; - } - fn handle_new_app_version_info(&mut self, app_version_info: AppVersionInfo) { self.app_version_info = Some(app_version_info.clone()); self.event_listener.notify_app_version(app_version_info); @@ -1589,22 +1564,31 @@ where } async fn on_create_new_account(&mut self, tx: ResponseTx<String, Error>) { - if let Ok(Some(_)) = self.account_manager.data().await { - let _ = tx.send(Err(Error::AlreadyLoggedIn)); - return; - } - let daemon_tx = self.tx.clone(); - let future = self.account_manager.account_service.create_account(); - tokio::spawn(async move { - match future.await { - Ok(account_token) => { - let _ = daemon_tx.send(InternalDaemonEvent::NewAccountEvent(account_token, tx)); + let fut = async { + if let Ok(Some(_)) = self.account_manager.data().await { + return Err(Error::AlreadyLoggedIn); + } + let token = self + .account_manager + .account_service + .create_account() + .await + .map_err(Error::RestError)?; + match self.set_account(Some(token.clone())).await { + Ok(_) => { + self.set_target_state(TargetState::Unsecured).await; + Ok(token) } - Err(err) => { - let _ = tx.send(Err(Error::RestError(err))); + Err(error) => { + log::error!( + "{}", + error.display_chain_with_msg("Handling new account failed") + ); + Err(error) } } - }); + }; + Self::oneshot_send(tx, fut.await, "create new account"); } async fn on_get_account_data( |
