diff options
| author | Linus Färnstrand <linus@mullvad.net> | 2019-11-27 16:37:40 +0100 |
|---|---|---|
| committer | Linus Färnstrand <linus@mullvad.net> | 2019-11-27 17:22:42 +0100 |
| commit | 6defee06f4d5ac084b30491d2f688eec0e7402a8 (patch) | |
| tree | 9974d80aac45d59d8c9aa141d7f1da0e47c73d85 | |
| parent | cbe9f4c9fb96e92fcdad6812045772525b363aea (diff) | |
| download | mullvadvpn-6defee06f4d5ac084b30491d2f688eec0e7402a8.tar.xz mullvadvpn-6defee06f4d5ac084b30491d2f688eec0e7402a8.zip | |
Add reconnect to cli
| -rw-r--r-- | mullvad-cli/src/cmds/mod.rs | 20 | ||||
| -rw-r--r-- | mullvad-cli/src/cmds/reconnect.rs | 22 | ||||
| -rw-r--r-- | mullvad-ipc-client/src/lib.rs | 4 |
3 files changed, 38 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(()) + } +} diff --git a/mullvad-ipc-client/src/lib.rs b/mullvad-ipc-client/src/lib.rs index 84eacb5dd7..dad3be309d 100644 --- a/mullvad-ipc-client/src/lib.rs +++ b/mullvad-ipc-client/src/lib.rs @@ -99,6 +99,10 @@ impl DaemonRpcClient { self.call("disconnect", &NO_ARGS) } + pub fn reconnect(&mut self) -> Result<()> { + self.call("reconnect", &NO_ARGS) + } + pub fn create_new_account(&mut self) -> Result<()> { self.call("create_new_account", &NO_ARGS) } |
