punchnet-macos/Tun/Punchnet/DNS/DNSDispatcher.swift
2026-04-10 11:19:37 +08:00

45 lines
1.5 KiB
Swift

//
// DNSDispatcher.swift
// punchnet
//
// Created by on 2026/4/10.
//
import Foundation
// MARK: - DNS 調
final class DNSDispatcher {
// private let localClient: SDLLocalDNSClient
// private let cloudClient: SDLDNSClient // Client
// private let logger: SDLLogger
// private let internalDomain = "punchsky.com"
//
// init(localClient: SDLLocalDNSClient, cloudClient: SDLDNSClient, logger: SDLLogger) {
// self.localClient = localClient
// self.cloudClient = cloudClient
// self.logger = logger
// }
//
// /// TUN IP
// func dispatch(packet: IPPacket) {
// // 1. UDP ( IPv4 20 + UDP 8)
// let udpPayload = packet.data.suffix(from: 28)
//
// // 2. DNS
// let parser = DNSParser(data: udpPayload)
// guard let dnsMsg = parser.parse(), let firstQuestion = dnsMsg.questions.first else {
// return
// }
//
// let domain = firstQuestion.name
//
// // 3.
// if domain.hasSuffix(internalDomain) {
// logger.log("[Dispatcher] Cloud Route: \(domain)", level: .debug)
// cloudClient.forward(ipPacket: packet) //
// } else {
// logger.log("[Dispatcher] Local Route: \(domain)", level: .debug)
// localClient.query(dnsPayload: udpPayload) //
// }
// }
}