import Foundation actor DNSService { enum Event { case packet(Data) } typealias EventHandler = @Sendable (Event) async -> Void private let cloudService: DNSCloudService private let localService: DNSLocalService init(cloudService: DNSCloudService, localService: DNSLocalService) { self.cloudService = cloudService self.localService = localService } func stop() async { await self.cloudService.stop() await self.localService.stop() } func forward(ipPacketData: Data) async { await self.cloudService.forward(ipPacketData: ipPacketData) } func queryLocal(tracker: DNSLocalClient.DNSTracker, dnsPayload: Data) async { await self.localService.query(tracker: tracker, dnsPayload: dnsPayload) } }