summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2020-10-22 11:06:04 +0200
committerDavid Lönnhager <david.l@mullvad.net>2020-10-22 11:06:19 +0200
commite201be8693584ffd3017f3e21ddff296b771aaf7 (patch)
tree332ef84c8f3e82da06d8e0cd349ecee66327e1cc
parentd88d5f32768fe14c7aa6276e61104e66dd05d1fe (diff)
downloadmullvadvpn-e201be8693584ffd3017f3e21ddff296b771aaf7.tar.xz
mullvadvpn-e201be8693584ffd3017f3e21ddff296b771aaf7.zip
Add 'reset' command for custom DNS instead of using 'set' without
additional arguments
-rw-r--r--mullvad-cli/src/cmds/custom_dns.rs14
1 files changed, 13 insertions, 1 deletions
diff --git a/mullvad-cli/src/cmds/custom_dns.rs b/mullvad-cli/src/cmds/custom_dns.rs
index 1ae196f47c..daba881f36 100644
--- a/mullvad-cli/src/cmds/custom_dns.rs
+++ b/mullvad-cli/src/cmds/custom_dns.rs
@@ -19,9 +19,11 @@ impl Command for CustomDns {
.arg(
clap::Arg::with_name("servers")
.multiple(true)
- .required(false),
+ .help("One or more IP addresses pointing to DNS resolvers.")
+ .required(true),
),
)
+ .subcommand(clap::SubCommand::with_name("reset").about("Remove all custom DNS servers"))
.subcommand(
clap::SubCommand::with_name("get").about("Display the current custom DNS setting"),
)
@@ -30,6 +32,8 @@ impl Command for CustomDns {
async fn run(&self, matches: &clap::ArgMatches<'_>) -> Result<()> {
if let Some(set_matches) = matches.subcommand_matches("set") {
self.set(set_matches.values_of_lossy("servers")).await
+ } else if let Some(_matches) = matches.subcommand_matches("reset") {
+ self.reset().await
} else if let Some(_matches) = matches.subcommand_matches("get") {
self.get().await
} else {
@@ -49,6 +53,14 @@ impl CustomDns {
Ok(())
}
+ async fn reset(&self) -> Result<()> {
+ let mut rpc = new_rpc_client().await?;
+ rpc.set_custom_dns(types::CustomDns { addresses: vec![] })
+ .await?;
+ println!("Cleared list of custom DNS servers");
+ Ok(())
+ }
+
async fn get(&self) -> Result<()> {
let mut rpc = new_rpc_client().await?;
let custom_dns = rpc