optimize: TCP 和 UDP 类型的DNS,只接收响应一次。
parent
a1767b1ae5
commit
d496c39ecd
|
@ -37,13 +37,13 @@ module.exports = class DNSOverTCP extends BaseDNS {
|
|||
tcpClient.write(Buffer.concat([lengthBuffer, packet]))
|
||||
})
|
||||
|
||||
tcpClient.on('data', (data) => {
|
||||
tcpClient.once('data', (data) => {
|
||||
const length = data.readUInt16BE(0)
|
||||
const response = dnsPacket.decode(data.subarray(2, 2 + length))
|
||||
resolve(response)
|
||||
})
|
||||
|
||||
tcpClient.on('error', (err) => {
|
||||
tcpClient.once('error', (err) => {
|
||||
reject(err)
|
||||
})
|
||||
})
|
||||
|
|
|
@ -35,7 +35,7 @@ module.exports = class DNSOverUDP extends BaseDNS {
|
|||
})
|
||||
|
||||
// 接收 UDP 响应
|
||||
udpClient.on('message', (msg) => {
|
||||
udpClient.once('message', (msg) => {
|
||||
const response = dnsPacket.decode(msg)
|
||||
resolve(response)
|
||||
})
|
||||
|
|
|
@ -106,9 +106,9 @@ let ip
|
|||
|
||||
console.log('\n--------------- test PreSet ---------------\n')
|
||||
ip = await dnsProviders.PreSet.lookup(presetHostname)
|
||||
assert.strictEqual(ip, presetIp) // test preset
|
||||
console.log('===> test PreSet:', ip, '\n\n')
|
||||
console.log('\n\n')
|
||||
assert.strictEqual(ip, presetIp) // test preset
|
||||
|
||||
|
||||
console.log('\n--------------- test https ---------------\n')
|
||||
|
|
Loading…
Reference in New Issue