diff options
| author | Linus Färnstrand <linus@mullvad.net> | 2018-01-11 10:47:41 +0100 |
|---|---|---|
| committer | Linus Färnstrand <linus@mullvad.net> | 2018-01-15 15:54:16 +0100 |
| commit | fc4178d7e3329fb1fd0014e4ce349a79eafeca51 (patch) | |
| tree | e6e557827dd417a626ba1a44a9045c3a8d95b435 /mullvad-cli | |
| parent | c50febb59f6f36f829fe56935fd2b0cdcf3ad92f (diff) | |
| download | mullvadvpn-fc4178d7e3329fb1fd0014e4ce349a79eafeca51.tar.xz mullvadvpn-fc4178d7e3329fb1fd0014e4ce349a79eafeca51.zip | |
Download geoip data from am.i.mullvad on request
Diffstat (limited to 'mullvad-cli')
| -rw-r--r-- | mullvad-cli/src/cmds/relay.rs | 5 | ||||
| -rw-r--r-- | mullvad-cli/src/cmds/status.rs | 19 |
2 files changed, 14 insertions, 10 deletions
diff --git a/mullvad-cli/src/cmds/relay.rs b/mullvad-cli/src/cmds/relay.rs index cbd18f1f03..86dfd7763c 100644 --- a/mullvad-cli/src/cmds/relay.rs +++ b/mullvad-cli/src/cmds/relay.rs @@ -196,7 +196,10 @@ impl Relay { country.cities.sort_by(|c1, c2| c1.name.cmp(&c2.name)); println!("{} ({})", country.name, country.code); for city in &country.cities { - println!("\t{} ({}) @ {:?}", city.name, city.code, city.position); + println!( + "\t{} ({}) @ {:.5}°N, {:.5}°W", + city.name, city.code, city.latitude, city.longitude + ); } println!(""); } diff --git a/mullvad-cli/src/cmds/status.rs b/mullvad-cli/src/cmds/status.rs index db63978798..b904f4df4a 100644 --- a/mullvad-cli/src/cmds/status.rs +++ b/mullvad-cli/src/cmds/status.rs @@ -2,12 +2,10 @@ use Command; use Result; use clap; -use mullvad_types::location::Location; +use mullvad_types::location::GeoIpLocation; use mullvad_types::states::{DaemonState, SecurityState, TargetState}; use rpc; -use std::net::IpAddr; - pub struct Status; impl Command for Status { @@ -29,15 +27,18 @@ impl Command for Status { (SecurityState::Secured, TargetState::Secured) => println!("Connected"), } - let location: Location = rpc::call("get_current_location", &[] as &[u8; 0])?; - println!("Location: {}, {}", location.city, location.country); + let location: GeoIpLocation = rpc::call("get_current_location", &[] as &[u8; 0])?; + let city_and_country = if let Some(city) = location.city { + format!("{}, {}", city, location.country) + } else { + format!("{}", location.country) + }; + println!("Location: {}", city_and_country); println!( "Position: {:.5}°N, {:.5}°W", - location.position[0], location.position[1] + location.latitude, location.longitude ); - - let ip: IpAddr = rpc::call("get_public_ip", &[] as &[u8; 0])?; - println!("IP: {}", ip); + println!("IP: {}", location.ip); Ok(()) } } |
