diff options
| -rw-r--r-- | mullvad-setup/src/main.rs | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/mullvad-setup/src/main.rs b/mullvad-setup/src/main.rs index eadeb964a4..cefd596581 100644 --- a/mullvad-setup/src/main.rs +++ b/mullvad-setup/src/main.rs @@ -11,6 +11,9 @@ pub enum Error { #[error(display = "Failed to connect to daemon")] DaemonConnect(#[error(source)] io::Error), + #[error(display = "This command cannot be run if the daemon is active")] + DaemonIsRunning, + #[error(display = "Firewall error")] FirewallError(#[error(source)] firewall::Error), } @@ -54,12 +57,16 @@ fn prepare_restart() -> Result<(), Error> { } fn reset_firewall() -> Result<(), Error> { - // TODO: ensure daemon isn't running + // Ensure that the daemon isn't running + if let Ok(_) = new_rpc_client() { + return Err(Error::DaemonIsRunning); + } let mut firewall = Firewall::new(FirewallArguments { initialize_blocked: false, allow_lan: None, - }).map_err(Error::FirewallError)?; + }) + .map_err(Error::FirewallError)?; firewall.reset_policy().map_err(Error::FirewallError) } |
