summaryrefslogtreecommitdiffhomepage
path: root/ios
diff options
context:
space:
mode:
authorBug Magnet <marco.nikic@mullvad.net>2025-03-17 13:19:38 +0100
committerBug Magnet <marco.nikic@mullvad.net>2025-03-17 13:19:38 +0100
commitfd7ea9b6d85da82cb4d0c98435a9ec9f3e8d985d (patch)
treeb0a163c486dece0b10252a3df9684edb55137ec0 /ios
parent102077516fa2c425a46cec5067bb281c23ca577b (diff)
parent5064d244784884f2a43aba6c244530adf21e9eaa (diff)
downloadmullvadvpn-fd7ea9b6d85da82cb4d0c98435a9ec9f3e8d985d.tar.xz
mullvadvpn-fd7ea9b6d85da82cb4d0c98435a9ec9f3e8d985d.zip
Merge branch 'fix-multihop-picker-issue-ios'
Diffstat (limited to 'ios')
-rw-r--r--ios/MullvadREST/Relay/MultihopDecisionFlow.swift5
-rw-r--r--ios/MullvadVPNTests/MullvadREST/Relay/MultihopDecisionFlowTests.swift14
2 files changed, 11 insertions, 8 deletions
diff --git a/ios/MullvadREST/Relay/MultihopDecisionFlow.swift b/ios/MullvadREST/Relay/MultihopDecisionFlow.swift
index ff466507e2..dcb4106b95 100644
--- a/ios/MullvadREST/Relay/MultihopDecisionFlow.swift
+++ b/ios/MullvadREST/Relay/MultihopDecisionFlow.swift
@@ -92,11 +92,6 @@ struct OneToMany: MultihopDecisionFlow {
)
}
- guard !daitaAutomaticRouting else {
- return try ManyToOne(next: next, relayPicker: relayPicker)
- .pick(entryCandidates: entryCandidates, exitCandidates: exitCandidates, daitaAutomaticRouting: true)
- }
-
let entryMatch = try multihopPicker.findBestMatch(from: entryCandidates, useObfuscatedPortIfAvailable: true)
let exitMatch = try multihopPicker.exclude(
relay: entryMatch,
diff --git a/ios/MullvadVPNTests/MullvadREST/Relay/MultihopDecisionFlowTests.swift b/ios/MullvadVPNTests/MullvadREST/Relay/MultihopDecisionFlowTests.swift
index 94267d5b39..5b44407fe0 100644
--- a/ios/MullvadVPNTests/MullvadREST/Relay/MultihopDecisionFlowTests.swift
+++ b/ios/MullvadVPNTests/MullvadREST/Relay/MultihopDecisionFlowTests.swift
@@ -112,14 +112,22 @@ class MultihopDecisionFlowTests: XCTestCase {
let entryCandidates = [seSto2]
let exitCandidates = [seSto2, seSto6]
- let selectedRelays = try oneToMany.pick(
+ let selectedRelaysWithoutSmartRouting = try oneToMany.pick(
entryCandidates: entryCandidates,
exitCandidates: exitCandidates,
daitaAutomaticRouting: false
)
- XCTAssertEqual(selectedRelays.entry?.hostname, "se2-wireguard")
- XCTAssertEqual(selectedRelays.exit.hostname, "se6-wireguard")
+ XCTAssertEqual(selectedRelaysWithoutSmartRouting.entry?.hostname, "se2-wireguard")
+ XCTAssertEqual(selectedRelaysWithoutSmartRouting.exit.hostname, "se6-wireguard")
+
+ let selectedRelaysWithSmartRouting = try XCTUnwrap(oneToMany.pick(
+ entryCandidates: [seSto2],
+ exitCandidates: [seSto2, seSto6],
+ daitaAutomaticRouting: true
+ ))
+ XCTAssertEqual(selectedRelaysWithSmartRouting.entry?.hostname, "se2-wireguard")
+ XCTAssertEqual(selectedRelaysWithSmartRouting.exit.hostname, "se6-wireguard")
}
func testManyToOnePick() throws {