Skip to content

Commit

Permalink
Remove additional Shadowsocks addresses when overrides are present
Browse files Browse the repository at this point in the history
  • Loading branch information
dlon committed Jul 29, 2024
1 parent b0cc429 commit 5703968
Showing 1 changed file with 12 additions and 1 deletion.
13 changes: 12 additions & 1 deletion mullvad-types/src/relay_constraints.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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};
Expand Down Expand Up @@ -660,5 +660,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
});
}
}
}

0 comments on commit 5703968

Please sign in to comment.