summaryrefslogtreecommitdiffhomepage
path: root/mullvad-cli
diff options
context:
space:
mode:
authorLinus Färnstrand <linus@mullvad.net>2019-11-27 16:37:40 +0100
committerLinus Färnstrand <linus@mullvad.net>2019-11-27 17:22:42 +0100
commit6defee06f4d5ac084b30491d2f688eec0e7402a8 (patch)
tree9974d80aac45d59d8c9aa141d7f1da0e47c73d85 /mullvad-cli
parentcbe9f4c9fb96e92fcdad6812045772525b363aea (diff)
downloadmullvadvpn-6defee06f4d5ac084b30491d2f688eec0e7402a8.tar.xz
mullvadvpn-6defee06f4d5ac084b30491d2f688eec0e7402a8.zip
Add reconnect to cli
Diffstat (limited to 'mullvad-cli')
-rw-r--r--mullvad-cli/src/cmds/mod.rs20
-rw-r--r--mullvad-cli/src/cmds/reconnect.rs22
2 files changed, 34 insertions, 8 deletions
diff --git a/mullvad-cli/src/cmds/mod.rs b/mullvad-cli/src/cmds/mod.rs
index 8caf26eac5..a26b64be74 100644
--- a/mullvad-cli/src/cmds/mod.rs
+++ b/mullvad-cli/src/cmds/mod.rs
@@ -7,30 +7,33 @@ pub use self::account::Account;
mod auto_connect;
pub use self::auto_connect::AutoConnect;
+mod block_when_disconnected;
+pub use self::block_when_disconnected::BlockWhenDisconnected;
+
mod bridge;
pub use self::bridge::Bridge;
-mod status;
-pub use self::status::Status;
-
mod connect;
pub use self::connect::Connect;
mod disconnect;
pub use self::disconnect::Disconnect;
-mod block_when_disconnected;
-pub use self::block_when_disconnected::BlockWhenDisconnected;
+mod lan;
+pub use self::lan::Lan;
+
+mod reconnect;
+pub use self::reconnect::Reconnect;
mod relay;
pub use self::relay::Relay;
-mod lan;
-pub use self::lan::Lan;
-
mod reset;
pub use self::reset::Reset;
+mod status;
+pub use self::status::Status;
+
mod tunnel;
pub use self::tunnel::Tunnel;
@@ -46,6 +49,7 @@ pub fn get_commands() -> HashMap<&'static str, Box<dyn Command>> {
Box::new(Bridge),
Box::new(Connect),
Box::new(Disconnect),
+ Box::new(Reconnect),
Box::new(Lan),
Box::new(Relay),
Box::new(Reset),
diff --git a/mullvad-cli/src/cmds/reconnect.rs b/mullvad-cli/src/cmds/reconnect.rs
new file mode 100644
index 0000000000..0cc7f6bfea
--- /dev/null
+++ b/mullvad-cli/src/cmds/reconnect.rs
@@ -0,0 +1,22 @@
+use crate::{new_rpc_client, Command, Result};
+use talpid_types::ErrorExt;
+
+pub struct Reconnect;
+
+impl Command for Reconnect {
+ fn name(&self) -> &'static str {
+ "reconnect"
+ }
+
+ fn clap_subcommand(&self) -> clap::App<'static, 'static> {
+ clap::SubCommand::with_name(self.name()).about("Command the client to reconnect")
+ }
+
+ fn run(&self, _matches: &clap::ArgMatches<'_>) -> Result<()> {
+ let mut rpc = new_rpc_client()?;
+ if let Err(e) = rpc.reconnect() {
+ eprintln!("{}", e.display_chain());
+ }
+ Ok(())
+ }
+}