diff --git a/ios/NebulaNetworkExtension/PacketTunnelProvider.swift b/ios/NebulaNetworkExtension/PacketTunnelProvider.swift index df48d93..e047f1e 100644 --- a/ios/NebulaNetworkExtension/PacketTunnelProvider.swift +++ b/ios/NebulaNetworkExtension/PacketTunnelProvider.swift @@ -219,7 +219,7 @@ class PacketTunnelProvider: NEPacketTunnelProvider { return nil } - var error: Error? + var error: (any Error)? var data: JSON? // start command has special treatment due to needing to call two completers @@ -264,27 +264,27 @@ class PacketTunnelProvider: NEPacketTunnelProvider { } } - private func listHostmap(pending: Bool) -> (JSON?, Error?) { + private func listHostmap(pending: Bool) -> (JSON?, (any Error)?) { var err: NSError? let res = nebula!.listHostmap(pending, error: &err) return (JSON(res), err) } - private func getHostInfo(args: JSON) -> (JSON?, Error?) { + private func getHostInfo(args: JSON) -> (JSON?, (any Error)?) { var err: NSError? let res = nebula!.getHostInfo( byVpnIp: args["vpnIp"].string, pending: args["pending"].boolValue, error: &err) return (JSON(res), err) } - private func setRemoteForTunnel(args: JSON) -> (JSON?, Error?) { + private func setRemoteForTunnel(args: JSON) -> (JSON?, (any Error)?) { var err: NSError? let res = nebula!.setRemoteForTunnel( args["vpnIp"].string, addr: args["addr"].string, error: &err) return (JSON(res), err) } - private func closeTunnel(args: JSON) -> (JSON?, Error?) { + private func closeTunnel(args: JSON) -> (JSON?, (any Error)?) { let res = nebula!.closeTunnel(args["vpnIp"].string) return (JSON(res), nil) } diff --git a/ios/NebulaNetworkExtension/Site.swift b/ios/NebulaNetworkExtension/Site.swift index 3efbe88..52bfec5 100644 --- a/ios/NebulaNetworkExtension/Site.swift +++ b/ios/NebulaNetworkExtension/Site.swift @@ -458,7 +458,7 @@ struct IncomingSite: Codable { func save( manager: NETunnelProviderManager?, saveToManager: Bool = true, - callback: @escaping (Error?) -> Void + callback: @escaping ((any Error)?) -> Void ) { let configPath: URL @@ -506,7 +506,7 @@ struct IncomingSite: Codable { } private func saveToManager( - manager: NETunnelProviderManager?, callback: @escaping (Error?) -> Void + manager: NETunnelProviderManager?, callback: @escaping ((any Error)?) -> Void ) { if manager != nil { // We need to refresh our settings to properly update config @@ -524,7 +524,7 @@ struct IncomingSite: Codable { } private func finishSaveToManager( - manager: NETunnelProviderManager, callback: @escaping (Error?) -> Void + manager: NETunnelProviderManager, callback: @escaping ((any Error)?) -> Void ) { // Stuff our details in the protocol let proto = diff --git a/ios/NebulaNetworkExtension/SiteList.swift b/ios/NebulaNetworkExtension/SiteList.swift index 471b338..699e668 100644 --- a/ios/NebulaNetworkExtension/SiteList.swift +++ b/ios/NebulaNetworkExtension/SiteList.swift @@ -49,7 +49,7 @@ class SiteList { "logs", isDirectory: false) } - init(completion: @escaping ([String: Site]?, Error?) -> Void) { + init(completion: @escaping ([String: Site]?, (any Error)?) -> Void) { #if targetEnvironment(simulator) SiteList.loadAllFromFS { sites, err in if sites != nil { @@ -67,7 +67,7 @@ class SiteList { #endif } - private static func loadAllFromFS(completion: @escaping ([String: Site]?, Error?) -> Void) { + private static func loadAllFromFS(completion: @escaping ([String: Site]?, (any Error)?) -> Void) { let fileManager = FileManager.default var siteDirs: [URL] var sites = [String: Site]() @@ -97,7 +97,9 @@ class SiteList { completion(sites, nil) } - private static func loadAllFromNETPM(completion: @escaping ([String: Site]?, Error?) -> Void) { + private static func loadAllFromNETPM( + completion: @escaping ([String: Site]?, (any Error)?) -> Void + ) { var sites = [String: Site]() // dispatchGroup is used to ensure we have migrated all sites before returning them diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift index 9528bbd..885fffc 100644 --- a/ios/Runner/AppDelegate.swift +++ b/ios/Runner/AppDelegate.swift @@ -318,13 +318,13 @@ func MissingArgumentError(message: String, details: Any?) -> FlutterError { } } -func MissingArgumentError(message: String, details: Error? = nil) -> FlutterError { +func MissingArgumentError(message: String, details: (any Error)? = nil) -> FlutterError { return FlutterError(code: "missingArgument", message: message, details: details) } func NoArgumentsError( message: String? = "no arguments were provided or could not be deserialized", - details: Error? = nil + details: (any Error)? = nil ) -> FlutterError { return FlutterError(code: "noArguments", message: message, details: details) } diff --git a/ios/Runner/DNUpdate.swift b/ios/Runner/DNUpdate.swift index 9f7f2c1..c59652f 100644 --- a/ios/Runner/DNUpdate.swift +++ b/ios/Runner/DNUpdate.swift @@ -100,7 +100,7 @@ class RepeatingTimer { self.timeInterval = timeInterval } - private lazy var timer: DispatchSourceTimer = { + private lazy var timer: any DispatchSourceTimer = { let t = DispatchSource.makeTimerSource() t.schedule(deadline: .now(), repeating: self.timeInterval) t.setEventHandler(handler: { [weak self] in diff --git a/ios/Runner/Sites.swift b/ios/Runner/Sites.swift index a477513..ed7b198 100644 --- a/ios/Runner/Sites.swift +++ b/ios/Runner/Sites.swift @@ -13,13 +13,13 @@ class SiteContainer { class Sites { private var containers = [String: SiteContainer]() - private var messenger: FlutterBinaryMessenger? + private var messenger: (any FlutterBinaryMessenger)? - init(messenger: FlutterBinaryMessenger?) { + init(messenger: (any FlutterBinaryMessenger)?) { self.messenger = messenger } - func loadSites(completion: @escaping ([String: Site]?, Error?) -> Void) { + func loadSites(completion: @escaping ([String: Site]?, (any Error)?) -> Void) { _ = SiteList { (sites, err) in if err != nil { return completion(nil, err) @@ -42,7 +42,7 @@ class Sites { } } - func deleteSite(id: String, callback: @escaping (Error?) -> Void) { + func deleteSite(id: String, callback: @escaping ((any Error)?) -> Void) { if let site = self.containers.removeValue(forKey: id) { _ = KeyChain.delete(key: "\(site.site.id).dnCredentials") _ = KeyChain.delete(key: "\(site.site.id).key") @@ -85,9 +85,9 @@ class SiteUpdater: NSObject, FlutterStreamHandler { private var notification: Any? public var startFunc: (() -> Void)? private var configFd: Int32? = nil - private var configObserver: DispatchSourceFileSystemObject? = nil + private var configObserver: (any DispatchSourceFileSystemObject)? = nil - init(messenger: FlutterBinaryMessenger, site: Site) { + init(messenger: any FlutterBinaryMessenger, site: Site) { do { let configPath = try SiteList.getSiteConfigFile(id: site.id, createDir: false) self.configFd = open(configPath.path, O_EVTONLY)