diff options
| author | Emīls Piņķis <emils@mullvad.net> | 2019-02-14 14:17:38 +0000 |
|---|---|---|
| committer | Emīls Piņķis <emils@mullvad.net> | 2019-02-14 14:17:38 +0000 |
| commit | 6c0c8dd999cdfaa5cc304dbaf5e2eb1fb6ef273b (patch) | |
| tree | 0aaebbd249d0e178b52088f0b7b6ed908d6ec28d /mullvad-cli/src | |
| parent | a08660ec31bca11a19abefeaa9422dd424f8c5e6 (diff) | |
| parent | 1c22fb20678170e009e59b80b96e0b63eab807d5 (diff) | |
| download | mullvadvpn-6c0c8dd999cdfaa5cc304dbaf5e2eb1fb6ef273b.tar.xz mullvadvpn-6c0c8dd999cdfaa5cc304dbaf5e2eb1fb6ef273b.zip | |
Merge branch 'proper-state-subscriptions'
Diffstat (limited to 'mullvad-cli/src')
| -rw-r--r-- | mullvad-cli/src/cmds/status.rs | 10 | ||||
| -rw-r--r-- | mullvad-cli/src/main.rs | 3 |
2 files changed, 11 insertions, 2 deletions
diff --git a/mullvad-cli/src/cmds/status.rs b/mullvad-cli/src/cmds/status.rs index 9c022a38d8..b1fb696b7f 100644 --- a/mullvad-cli/src/cmds/status.rs +++ b/mullvad-cli/src/cmds/status.rs @@ -1,4 +1,5 @@ -use crate::{new_rpc_client, Command, Result}; +use crate::{new_rpc_client, Command, Error, ErrorKind, Result, ResultExt}; +use futures::{Future, Stream}; use mullvad_ipc_client::DaemonRpcClient; use mullvad_types::auth_failed::AuthFailed; use talpid_types::tunnel::{BlockReason, TunnelStateTransition}; @@ -25,7 +26,12 @@ impl Command for Status { print_state(&state); print_location(&mut rpc)?; if matches.subcommand_matches("listen").is_some() { - for new_state in rpc.new_state_subscribe()? { + let subscription = rpc + .new_state_subscribe() + .wait() + .map_err(|_err| Error::from(ErrorKind::CantSubscribe))?; + for new_state in subscription.wait() { + let new_state = new_state.chain_err(|| "Subscription failed")?; print_state(&new_state); use self::TunnelStateTransition::*; diff --git a/mullvad-cli/src/main.rs b/mullvad-cli/src/main.rs index dc4ffe13db..733e3a136d 100644 --- a/mullvad-cli/src/main.rs +++ b/mullvad-cli/src/main.rs @@ -26,6 +26,9 @@ error_chain! { description("Failed to connect to daemon") display("Failed to connect to daemon: {}Is the daemon running?", err.display_chain()) } + CantSubscribe { + description("Can't subscribe to daemon states") + } } foreign_links { |
