summaryrefslogtreecommitdiffhomepage
path: root/mullvad-cli
diff options
context:
space:
mode:
authorLinus Färnstrand <linus@mullvad.net>2018-01-11 10:47:41 +0100
committerLinus Färnstrand <linus@mullvad.net>2018-01-15 15:54:16 +0100
commitfc4178d7e3329fb1fd0014e4ce349a79eafeca51 (patch)
treee6e557827dd417a626ba1a44a9045c3a8d95b435 /mullvad-cli
parentc50febb59f6f36f829fe56935fd2b0cdcf3ad92f (diff)
downloadmullvadvpn-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.rs5
-rw-r--r--mullvad-cli/src/cmds/status.rs19
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(())
}
}