summaryrefslogtreecommitdiffhomepage
path: root/mullvad-cli
diff options
context:
space:
mode:
authorLinus Färnstrand <linus@mullvad.net>2019-09-11 14:30:12 +0200
committerLinus Färnstrand <linus@mullvad.net>2019-09-13 11:28:56 +0200
commite4fcee8525c1e43cc1d681d3763ae2be58c03657 (patch)
tree55e5c90ba309e38ce095156ee2f7e83963bbb634 /mullvad-cli
parentcf0459a0aa5c5a9064bd9f242cc0e8fab22213bd (diff)
downloadmullvadvpn-e4fcee8525c1e43cc1d681d3763ae2be58c03657.tar.xz
mullvadvpn-e4fcee8525c1e43cc1d681d3763ae2be58c03657.zip
Filter relays on the new "active" flag in the CLI
Diffstat (limited to 'mullvad-cli')
-rw-r--r--mullvad-cli/src/cmds/bridge.rs3
-rw-r--r--mullvad-cli/src/cmds/relay.rs25
2 files changed, 27 insertions, 1 deletions
diff --git a/mullvad-cli/src/cmds/bridge.rs b/mullvad-cli/src/cmds/bridge.rs
index caee182123..fa80c3fa40 100644
--- a/mullvad-cli/src/cmds/bridge.rs
+++ b/mullvad-cli/src/cmds/bridge.rs
@@ -323,7 +323,7 @@ impl Bridge {
.cities
.into_iter()
.filter_map(|mut city| {
- city.relays.retain(|relay| !relay.bridges.is_empty());
+ city.relays.retain(|relay| relay.active && !relay.bridges.is_empty());
if !city.relays.is_empty() {
Some(city)
} else {
@@ -339,6 +339,7 @@ impl Bridge {
})
.collect();
+ locations.countries.sort_by(|c1, c2| c1.name.cmp(&c2.name));
for mut country in locations.countries {
country.cities.sort_by(|c1, c2| c1.name.cmp(&c2.name));
println!("{} ({})", country.name, country.code);
diff --git a/mullvad-cli/src/cmds/relay.rs b/mullvad-cli/src/cmds/relay.rs
index 13b26b79c6..c281732b5e 100644
--- a/mullvad-cli/src/cmds/relay.rs
+++ b/mullvad-cli/src/cmds/relay.rs
@@ -315,6 +315,31 @@ impl Relay {
fn list(&self) -> Result<()> {
let mut rpc = new_rpc_client()?;
let mut locations = rpc.get_relay_locations()?;
+
+ locations.countries = locations
+ .countries
+ .into_iter()
+ .filter_map(|mut country| {
+ country.cities = country
+ .cities
+ .into_iter()
+ .filter_map(|mut city| {
+ city.relays.retain(|relay| relay.active && !relay.tunnels.is_empty());
+ if !city.relays.is_empty() {
+ Some(city)
+ } else {
+ None
+ }
+ })
+ .collect();
+ if !country.cities.is_empty() {
+ Some(country)
+ } else {
+ None
+ }
+ })
+ .collect();
+
locations.countries.sort_by(|c1, c2| c1.name.cmp(&c2.name));
for mut country in locations.countries {
country.cities.sort_by(|c1, c2| c1.name.cmp(&c2.name));