diff options
| author | Bug Magnet <marco.nikic@mullvad.net> | 2025-09-17 12:20:42 +0200 |
|---|---|---|
| committer | Bug Magnet <marco.nikic@mullvad.net> | 2025-09-19 14:07:33 +0200 |
| commit | 25dfd440040d759c81ecd754a27fa4d95c543563 (patch) | |
| tree | 7e1ecc7ffe891c6d9ca23a06268e9cf918bda838 /ios/MullvadRustRuntime | |
| parent | acdbc96d329461fdc63568e4b5827308a0e5516b (diff) | |
| download | mullvadvpn-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.swift | 8 |
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 { |
