summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorLinus Färnstrand <linus@mullvad.net>2017-08-24 15:04:04 +0200
committerLinus Färnstrand <linus@mullvad.net>2017-08-24 15:04:04 +0200
commit75b80b08a276f0d2bf45f322789c92d02220b50e (patch)
treefd5f608c9e6a0a668f75851b8edf4e543143a12d
parent91d9d6e05052a1b16258c7fef12e056ae79e6aef (diff)
downloadmullvadvpn-75b80b08a276f0d2bf45f322789c92d02220b50e.tar.xz
mullvadvpn-75b80b08a276f0d2bf45f322789c92d02220b50e.zip
Make connect/disconnect leverage helper method
-rw-r--r--mullvad-daemon/src/management_interface.rs24
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> {