summaryrefslogtreecommitdiffhomepage
path: root/mullvad-setup/src
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2020-03-06 15:51:34 +0100
committerDavid Lönnhager <david.l@mullvad.net>2020-03-16 12:54:27 +0100
commitee487962c069e95dffa013407d7358fb3fa8f67b (patch)
treee9bd0ed30b6f2b5b664f5ecbd25619f67a1581c2 /mullvad-setup/src
parent25b88e2691a80235b9e46d6adb223ee7719912c1 (diff)
downloadmullvadvpn-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.rs11
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)
}