optimize: TCP 和 UDP 类型的DNS,只接收响应一次。

release-2.0.0.2
王良 2025-03-06 01:42:08 +08:00
parent a1767b1ae5
commit d496c39ecd
3 changed files with 4 additions and 4 deletions

View File

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

View File

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

View File

@ -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')