diff options
| author | David Lönnhager <david.l@mullvad.net> | 2024-07-29 10:37:16 +0200 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2024-08-16 09:13:30 +0200 |
| commit | 68998722a44687acf39e018a501dc3b290df370a (patch) | |
| tree | a3405e3cb94b2b4c82463c9e32222dd74a980b21 | |
| parent | a8c7a33ea6667e8803a4c8475409ff19de8d679a (diff) | |
| download | mullvadvpn-68998722a44687acf39e018a501dc3b290df370a.tar.xz mullvadvpn-68998722a44687acf39e018a501dc3b290df370a.zip | |
Remove additional Shadowsocks addresses when overrides are present
| -rw-r--r-- | mullvad-types/src/relay_constraints.rs | 13 |
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 + }); + } } } |
