summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorKalle Lindström <karl.lindstrom@mullvad.net>2025-08-07 13:27:24 +0200
committerKalle Lindström <karl.lindstrom@mullvad.net>2025-08-08 10:56:50 +0200
commit8d25bac564324061882a5d7b30def5a7735b87dc (patch)
tree201e6504d8a9f91c41214448630b8521b10d43cd
parentdcace5318b9d4cd84e48802e9c8a4cfd783fc882 (diff)
downloadmullvadvpn-8d25bac564324061882a5d7b30def5a7735b87dc.tar.xz
mullvadvpn-8d25bac564324061882a5d7b30def5a7735b87dc.zip
Reject invalid multihop recents
-rw-r--r--mullvad-types/src/settings/mod.rs13
1 files changed, 13 insertions, 0 deletions
diff --git a/mullvad-types/src/settings/mod.rs b/mullvad-types/src/settings/mod.rs
index 7e18f63c5a..b71280a7e9 100644
--- a/mullvad-types/src/settings/mod.rs
+++ b/mullvad-types/src/settings/mod.rs
@@ -139,6 +139,19 @@ impl TryFrom<&RelaySettings> for Recent {
.ok_or("Location must be Constraint::Only")?
.clone();
+ if matches!(
+ entry,
+ LocationConstraint::Location(GeographicLocationConstraint::Hostname(..))
+ ) && matches!(
+ location,
+ LocationConstraint::Location(GeographicLocationConstraint::Hostname(..))
+ ) && entry == location
+ {
+ return Err(
+ "Multihop recent cannot have identical (country, city, host) triple.",
+ );
+ }
+
Recent::Multihop {
entry,
exit: location,