summaryrefslogtreecommitdiffhomepage
path: root/ios/MullvadRustRuntime
diff options
context:
space:
mode:
authorBug Magnet <marco.nikic@mullvad.net>2025-09-17 12:20:42 +0200
committerBug Magnet <marco.nikic@mullvad.net>2025-09-19 14:07:33 +0200
commit25dfd440040d759c81ecd754a27fa4d95c543563 (patch)
tree7e1ecc7ffe891c6d9ca23a06268e9cf918bda838 /ios/MullvadRustRuntime
parentacdbc96d329461fdc63568e4b5827308a0e5516b (diff)
downloadmullvadvpn-25dfd440040d759c81ecd754a27fa4d95c543563.tar.xz
mullvadvpn-25dfd440040d759c81ecd754a27fa4d95c543563.zip
Add routine that clears shadowsocks caches on API rotation and failure
Diffstat (limited to 'ios/MullvadRustRuntime')
-rw-r--r--ios/MullvadRustRuntime/MullvadApiContext.swift8
1 files changed, 5 insertions, 3 deletions
diff --git a/ios/MullvadRustRuntime/MullvadApiContext.swift b/ios/MullvadRustRuntime/MullvadApiContext.swift
index d2d289b951..66d40d800a 100644
--- a/ios/MullvadRustRuntime/MullvadApiContext.swift
+++ b/ios/MullvadRustRuntime/MullvadApiContext.swift
@@ -14,7 +14,7 @@ func onAccessChangeCallback(selfPtr: UnsafeRawPointer?, bytes: UnsafePointer<UIn
let context = Unmanaged<MullvadApiContext>.fromOpaque(selfPtr).takeUnretainedValue()
let uuid = NSUUID(uuidBytes: bytes) as UUID
- context.accessMethodChangeListener?.accessMethodChangedTo(uuid)
+ context.accessMethodChangeListeners.forEach { $0.accessMethodChangedTo(uuid) }
}
public class MullvadApiContext: @unchecked Sendable {
@@ -27,7 +27,7 @@ public class MullvadApiContext: @unchecked Sendable {
private let shadowsocksBridgeProviderWrapper: SwiftShadowsocksLoaderWrapper!
private let addressCacheWrapper: SwiftAddressCacheWrapper!
private let addressCacheProvider: AddressCacheProviding!
- public var accessMethodChangeListener: MullvadAccessMethodChangeListening?
+ public let accessMethodChangeListeners: [MullvadAccessMethodChangeListening]
public init(
host: String,
@@ -36,7 +36,8 @@ public class MullvadApiContext: @unchecked Sendable {
disableTls: Bool = false,
shadowsocksProvider: SwiftShadowsocksBridgeProviding,
accessMethodWrapper: SwiftAccessMethodSettingsWrapper,
- addressCacheProvider: AddressCacheProviding
+ addressCacheProvider: AddressCacheProviding,
+ accessMethodChangeListeners: [MullvadAccessMethodChangeListening]
) throws {
let bridgeProvider = SwiftShadowsocksBridgeProvider(provider: shadowsocksProvider)
self.shadowsocksBridgeProvider = bridgeProvider
@@ -45,6 +46,7 @@ public class MullvadApiContext: @unchecked Sendable {
let defaultAddressCache = DefaultAddressCacheProvider(provider: addressCacheProvider)
self.addressCacheProvider = defaultAddressCache
self.addressCacheWrapper = iniSwiftAddressCacheWrapper(provider: defaultAddressCache)
+ self.accessMethodChangeListeners = accessMethodChangeListeners
let selfPtr = Unmanaged.passUnretained(self).toOpaque()
context = switch disableTls {