解决本地的dns的解析问题
This commit is contained in:
parent
f22e962bd7
commit
70f8b1c3e2
@ -81,26 +81,25 @@ final class DNSLocalClient {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private func handleResponse(data: Data) {
|
private func handleResponse(data: Data) {
|
||||||
let dnsParser = DNSParser(data: data, offset: 0)
|
guard data.count > 2 else {
|
||||||
if let message = dnsParser.parse() {
|
return
|
||||||
let tranId = message.transactionID
|
}
|
||||||
|
|
||||||
locker.lock()
|
let tranId = UInt16(data[0]) << 8 | UInt16(data[1])
|
||||||
let items = self.trackers.removeValue(forKey: tranId)
|
|
||||||
locker.unlock()
|
|
||||||
|
|
||||||
if let items {
|
locker.lock()
|
||||||
items.forEach { tracker in
|
let items = self.trackers.removeValue(forKey: tranId)
|
||||||
let packet = Self.createDNSResponse(
|
locker.unlock()
|
||||||
payload: data,
|
|
||||||
srcIP: DNSHelper.dnsDestIpAddr,
|
items?.forEach { tracker in
|
||||||
srcPort: 53,
|
let packet = Self.createDNSResponse(
|
||||||
destIP: tracker.clientIP,
|
payload: data,
|
||||||
destPort: tracker.clientPort
|
srcIP: DNSHelper.dnsDestIpAddr,
|
||||||
)
|
srcPort: 53,
|
||||||
self.packetContinuation.yield(packet)
|
destIP: tracker.clientIP,
|
||||||
}
|
destPort: tracker.clientPort
|
||||||
}
|
)
|
||||||
|
self.packetContinuation.yield(packet)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user