punchnet-macos/Tun/DNS/DNSService.swift
2026-05-27 22:16:02 +08:00

31 lines
804 B
Swift

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)
}
}