diff options
| author | mojganii <mojgan.jelodar@codic.se> | 2025-03-13 16:12:35 +0100 |
|---|---|---|
| committer | Bug Magnet <marco.nikic@mullvad.net> | 2025-03-17 13:18:34 +0100 |
| commit | 5064d244784884f2a43aba6c244530adf21e9eaa (patch) | |
| tree | b0a163c486dece0b10252a3df9684edb55137ec0 | |
| parent | 102077516fa2c425a46cec5067bb281c23ca577b (diff) | |
| download | mullvadvpn-5064d244784884f2a43aba6c244530adf21e9eaa.tar.xz mullvadvpn-5064d244784884f2a43aba6c244530adf21e9eaa.zip | |
Fix the issue in smart routing when selecting one to many relays
| -rw-r--r-- | ios/MullvadREST/Relay/MultihopDecisionFlow.swift | 5 | ||||
| -rw-r--r-- | ios/MullvadVPNTests/MullvadREST/Relay/MultihopDecisionFlowTests.swift | 14 |
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 { |
