summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2020-03-09 09:55:46 +0100
committerDavid Lönnhager <david.l@mullvad.net>2020-03-16 12:54:27 +0100
commite7727b3888d2c32050d75a8fe5482e3ff42fd85d (patch)
tree56966eb4e9b0cbf13b97950d8827696b33fd9da2
parentbf5de2975055790e0dd319324b5342f11b6e92e3 (diff)
downloadmullvadvpn-e7727b3888d2c32050d75a8fe5482e3ff42fd85d.tar.xz
mullvadvpn-e7727b3888d2c32050d75a8fe5482e3ff42fd85d.zip
Add reset-firewall command to mullvad-setup
-rw-r--r--mullvad-setup/src/main.rs12
1 files changed, 11 insertions, 1 deletions
diff --git a/mullvad-setup/src/main.rs b/mullvad-setup/src/main.rs
index 9034d7c1f7..484ca82c87 100644
--- a/mullvad-setup/src/main.rs
+++ b/mullvad-setup/src/main.rs
@@ -1,11 +1,14 @@
use clap::{crate_authors, crate_description, crate_name, SubCommand};
use std::process;
+use talpid_core::firewall::{self, Firewall, FirewallArguments};
use talpid_types::ErrorExt;
pub const PRODUCT_VERSION: &str = include_str!(concat!(env!("OUT_DIR"), "/product-version.txt"));
#[derive(err_derive::Error, Debug)]
pub enum Error {
+ #[error(display = "Firewall error")]
+ FirewallError(#[error(source)] firewall::Error),
}
fn main() {
@@ -47,5 +50,12 @@ fn prepare_restart() -> Result<(), Error> {
}
fn reset_firewall() -> Result<(), Error> {
- Ok(())
+ // TODO: ensure daemon isn't running
+
+ let mut firewall = Firewall::new(FirewallArguments {
+ initialize_blocked: false,
+ allow_lan: None,
+ }).map_err(Error::FirewallError)?;
+
+ firewall.reset_policy().map_err(Error::FirewallError)
}