summaryrefslogtreecommitdiffhomepage
path: root/ios
diff options
context:
space:
mode:
authorSteffen Ernst <steffen.ernst@mullvad.net>2025-02-14 13:30:51 +0100
committerBug Magnet <marco.nikic@mullvad.net>2025-02-18 11:20:29 +0100
commit831fb52d4ab45fe89e2d3b87d577d8cdd798cd96 (patch)
tree94ab4972099f1380960167220ff028baaa663d3c /ios
parentc778787bfac7fd842b428cc4972ae85d2eda15ac (diff)
downloadmullvadvpn-831fb52d4ab45fe89e2d3b87d577d8cdd798cd96.tar.xz
mullvadvpn-831fb52d4ab45fe89e2d3b87d577d8cdd798cd96.zip
Fix access method rotation after dns proxy failure
Diffstat (limited to 'ios')
-rw-r--r--ios/MullvadREST/Transport/TransportProvider.swift13
-rw-r--r--ios/MullvadRustRuntime/EncryptedDNSProxy.swift2
2 files changed, 13 insertions, 2 deletions
diff --git a/ios/MullvadREST/Transport/TransportProvider.swift b/ios/MullvadREST/Transport/TransportProvider.swift
index ac08064eb4..9573d5fdbd 100644
--- a/ios/MullvadREST/Transport/TransportProvider.swift
+++ b/ios/MullvadREST/Transport/TransportProvider.swift
@@ -8,6 +8,7 @@
import Foundation
import Logging
+import MullvadRustRuntime
import MullvadTypes
public final class TransportProvider: RESTTransportProvider, Sendable {
@@ -38,7 +39,8 @@ public final class TransportProvider: RESTTransportProvider, Sendable {
let currentStrategy = transportStrategy
return TransportWrapper(wrapped: actualTransport) { [weak self] error in
- if let error = error as? URLError, error.shouldResetNetworkTransport {
+ if (error as? URLError)?.shouldResetNetworkTransport ?? false ||
+ (error as? EncryptedDnsProxyError)?.shouldResetNetworkTransport ?? false {
self?.resetTransportMatching(currentStrategy)
}
}
@@ -104,6 +106,15 @@ public final class TransportProvider: RESTTransportProvider, Sendable {
}
}
+private extension EncryptedDnsProxyError {
+ var shouldResetNetworkTransport: Bool {
+ switch self {
+ case .start:
+ return true
+ }
+ }
+}
+
private extension URLError {
/// Whether the transport selection should be reset.
///
diff --git a/ios/MullvadRustRuntime/EncryptedDNSProxy.swift b/ios/MullvadRustRuntime/EncryptedDNSProxy.swift
index 935ac27fa0..b5929b5ba4 100644
--- a/ios/MullvadRustRuntime/EncryptedDNSProxy.swift
+++ b/ios/MullvadRustRuntime/EncryptedDNSProxy.swift
@@ -9,7 +9,7 @@
import Foundation
import MullvadRustRuntimeProxy
-enum EncryptedDnsProxyError: Error {
+public enum EncryptedDnsProxyError: Error {
case start(err: Int32)
}