summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2024-07-29 10:37:16 +0200
committerDavid Lönnhager <david.l@mullvad.net>2024-08-16 09:13:30 +0200
commit68998722a44687acf39e018a501dc3b290df370a (patch)
treea3405e3cb94b2b4c82463c9e32222dd74a980b21
parenta8c7a33ea6667e8803a4c8475409ff19de8d679a (diff)
downloadmullvadvpn-68998722a44687acf39e018a501dc3b290df370a.tar.xz
mullvadvpn-68998722a44687acf39e018a501dc3b290df370a.zip
Remove additional Shadowsocks addresses when overrides are present
-rw-r--r--mullvad-types/src/relay_constraints.rs13
1 files changed, 12 insertions, 1 deletions
diff --git a/mullvad-types/src/relay_constraints.rs b/mullvad-types/src/relay_constraints.rs
index cbc406eb80..b348727685 100644
--- a/mullvad-types/src/relay_constraints.rs
+++ b/mullvad-types/src/relay_constraints.rs
@@ -5,7 +5,7 @@ use crate::{
constraints::{Constraint, Match},
custom_list::{CustomListsSettings, Id},
location::{CityCode, CountryCode, Hostname},
- relay_list::Relay,
+ relay_list::{Relay, RelayEndpointData},
CustomTunnelEndpoint, Intersection,
};
use serde::{Deserialize, Serialize};
@@ -667,5 +667,16 @@ impl RelayOverride {
);
relay.ipv6_addr_in = Some(ipv6_addr_in);
}
+
+ // Additional IPs should be ignored when overrides are present
+ if let RelayEndpointData::Wireguard(data) = &mut relay.endpoint_data {
+ data.shadowsocks_extra_addr_in.retain(|addr| {
+ let not_overridden_v4 = self.ipv4_addr_in.is_none() && addr.is_ipv4();
+ let not_overridden_v6 = self.ipv6_addr_in.is_none() && addr.is_ipv6();
+
+ // Keep address if it's not overridden
+ not_overridden_v4 || not_overridden_v6
+ });
+ }
}
}