diff options
| author | David Lönnhager <david.l@mullvad.net> | 2020-03-06 15:51:34 +0100 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2020-03-16 12:54:27 +0100 |
| commit | ee487962c069e95dffa013407d7358fb3fa8f67b (patch) | |
| tree | e9bd0ed30b6f2b5b664f5ecbd25619f67a1581c2 /mullvad-setup/src | |
| parent | 25b88e2691a80235b9e46d6adb223ee7719912c1 (diff) | |
| download | mullvadvpn-ee487962c069e95dffa013407d7358fb3fa8f67b.tar.xz mullvadvpn-ee487962c069e95dffa013407d7358fb3fa8f67b.zip | |
Prevent reset-firewall in daemon setup tool from being run if the daemon is running
Diffstat (limited to 'mullvad-setup/src')
| -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) } |
