summaryrefslogtreecommitdiffhomepage
path: root/mullvad-cli/src
diff options
context:
space:
mode:
Diffstat (limited to 'mullvad-cli/src')
-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));