diff options
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 { |
