summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2021-11-26 14:41:28 +0100
committerDavid Lönnhager <david.l@mullvad.net>2022-03-14 12:08:45 +0100
commitf146aaaba3ca59d3fde69de406cb60e6b18ec9d8 (patch)
treeddb2fff77393974bec5af8f6affa8b0f00d76475
parent193001052716a49b4f774753cead7d1d30ac0edb (diff)
downloadmullvadvpn-f146aaaba3ca59d3fde69de406cb60e6b18ec9d8.tar.xz
mullvadvpn-f146aaaba3ca59d3fde69de406cb60e6b18ec9d8.zip
Fail account creation if the daemon is already logged in
-rw-r--r--mullvad-daemon/src/lib.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/mullvad-daemon/src/lib.rs b/mullvad-daemon/src/lib.rs
index 221d9632c6..2c58d93285 100644
--- a/mullvad-daemon/src/lib.rs
+++ b/mullvad-daemon/src/lib.rs
@@ -149,6 +149,9 @@ pub enum Error {
#[error(display = "Split tunneling error")]
SplitTunnelError(#[error(source)] split_tunnel::Error),
+ #[error(display = "An account is already set")]
+ AlreadyLoggedIn,
+
#[error(display = "No wireguard private key available")]
NoKeyAvailable,
@@ -1572,6 +1575,10 @@ where
}
async fn on_create_new_account(&mut self, tx: ResponseTx<String, Error>) {
+ if self.account_manager.is_some() {
+ 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 {