diff options
| author | Linus Färnstrand <linus@mullvad.net> | 2017-08-24 15:04:04 +0200 |
|---|---|---|
| committer | Linus Färnstrand <linus@mullvad.net> | 2017-08-24 15:04:04 +0200 |
| commit | 75b80b08a276f0d2bf45f322789c92d02220b50e (patch) | |
| tree | fd5f608c9e6a0a668f75851b8edf4e543143a12d | |
| parent | 91d9d6e05052a1b16258c7fef12e056ae79e6aef (diff) | |
| download | mullvadvpn-75b80b08a276f0d2bf45f322789c92d02220b50e.tar.xz mullvadvpn-75b80b08a276f0d2bf45f322789c92d02220b50e.zip | |
Make connect/disconnect leverage helper method
| -rw-r--r-- | mullvad-daemon/src/management_interface.rs | 24 |
1 files changed, 8 insertions, 16 deletions
diff --git a/mullvad-daemon/src/management_interface.rs b/mullvad-daemon/src/management_interface.rs index 2290b52c74..65778b6548 100644 --- a/mullvad-daemon/src/management_interface.rs +++ b/mullvad-daemon/src/management_interface.rs @@ -52,13 +52,13 @@ build_rpc_trait! { fn set_autoconnect(&self, bool) -> Result<(), Error>; /// Try to connect if disconnected, or do nothing if already connecting/connected. - #[rpc(name = "connect")] - fn connect(&self) -> Result<(), Error>; + #[rpc(async, name = "connect")] + fn connect(&self) -> BoxFuture<(), Error>; /// Disconnect the VPN tunnel if it is connecting/connected. Does nothing if already /// disconnected. - #[rpc(name = "disconnect")] - fn disconnect(&self) -> Result<(), Error>; + #[rpc(async, name = "disconnect")] + fn disconnect(&self) -> BoxFuture<(), Error>; /// Returns the current state of the Mullvad client. Changes to this state will /// be announced to subscribers of `new_state`. @@ -285,22 +285,14 @@ impl<T: From<TunnelCommand> + 'static + Send> ManagementInterfaceApi for Managem Ok(()) } - fn connect(&self) -> Result<(), Error> { + fn connect(&self) -> BoxFuture<(), Error> { trace!("connect"); - self.tx - .lock() - .unwrap() - .send(TunnelCommand::SetTargetState(TargetState::Secured)) - .map_err(|_| Error::internal_error()) + self.send_command_to_daemon(TunnelCommand::SetTargetState(TargetState::Secured)) } - fn disconnect(&self) -> Result<(), Error> { + fn disconnect(&self) -> BoxFuture<(), Error> { trace!("disconnect"); - self.tx - .lock() - .unwrap() - .send(TunnelCommand::SetTargetState(TargetState::Unsecured)) - .map_err(|_| Error::internal_error()) + self.send_command_to_daemon(TunnelCommand::SetTargetState(TargetState::Unsecured)) } fn get_state(&self) -> BoxFuture<DaemonState, Error> { |
