summaryrefslogtreecommitdiffhomepage
path: root/mullvad-cli/src
diff options
context:
space:
mode:
Diffstat (limited to 'mullvad-cli/src')
-rw-r--r--mullvad-cli/src/cmds/status.rs17
1 files changed, 16 insertions, 1 deletions
diff --git a/mullvad-cli/src/cmds/status.rs b/mullvad-cli/src/cmds/status.rs
index d25a591726..b1a05bfd07 100644
--- a/mullvad-cli/src/cmds/status.rs
+++ b/mullvad-cli/src/cmds/status.rs
@@ -4,6 +4,8 @@ use Command;
use Result;
use mullvad_ipc_client::DaemonRpcClient;
+use mullvad_types::auth_failed::AuthFailed;
+use talpid_types::tunnel::BlockReason;
use talpid_types::tunnel::TunnelStateTransition::{self, *};
pub struct Status;
@@ -44,7 +46,7 @@ impl Command for Status {
fn print_state(state: &TunnelStateTransition) {
print!("Tunnel status: ");
match state {
- Blocked(reason) => println!("Blocked ({})", reason),
+ Blocked(reason) => print_blocked_reason(reason),
Connected(_) => println!("Connected"),
Connecting(_) => println!("Connecting..."),
Disconnected => println!("Disconnected"),
@@ -52,6 +54,19 @@ fn print_state(state: &TunnelStateTransition) {
}
}
+fn print_blocked_reason(reason: &BlockReason) {
+ match reason {
+ BlockReason::AuthFailed(ref auth_failure) => {
+ let auth_failure_str = auth_failure
+ .as_ref()
+ .map(|s| s.as_str())
+ .unwrap_or("Account authentication failed");
+ println!("Blocked: {}", AuthFailed::from_str(auth_failure_str));
+ }
+ other => println!("Blocked: {}", other),
+ }
+}
+
fn print_location(rpc: &mut DaemonRpcClient) -> Result<()> {
let location = rpc.get_current_location()?;
let city_and_country = if let Some(city) = location.city {