summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-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)
}