From f4d88a254bb6a7bf0ddcbe1d558655d3c4ad2bd0 Mon Sep 17 00:00:00 2001 From: Matt Simerson Date: Sun, 24 May 2026 20:48:30 -0700 Subject: [PATCH] revert #102, add test timeout --- package.json | 4 ++-- packet.js | 7 +------ server/doh.js | 1 + test/index.js | 18 +++++++++++------- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index 7637332..28361ac 100644 --- a/package.json +++ b/package.json @@ -5,8 +5,8 @@ "main": "index.js", "scripts": { "test": "node test", - "lint": "eslint .", - "fix": "eslint . --fix", + "lint": "npx eslint .", + "lint:fix": "npx eslint . --fix", "example-server-udp": "node example/server/udp.js", "example-server-tcp": "node example/server/tcp.js", "example-server-doh": "node example/server/doh.js", diff --git a/packet.js b/packet.js index b346d69..819c6ed 100644 --- a/packet.js +++ b/packet.js @@ -148,12 +148,7 @@ Packet.uuid = function() { Packet.parse = function(buffer) { const packet = new Packet(); const reader = new Packet.Reader(buffer); - try { - packet.header = Packet.Header.parse(reader); - } catch(e){ - debug('node-dns > parse %s error', 'parse', e.message); - return packet; - } + packet.header = Packet.Header.parse(reader); ([ // props parser count [ 'questions', Packet.Question, packet.header.qdcount ], [ 'answers', Packet.Resource, packet.header.ancount ], diff --git a/server/doh.js b/server/doh.js index bb8b724..797b1ee 100644 --- a/server/doh.js +++ b/server/doh.js @@ -139,6 +139,7 @@ class Server extends EventEmitter { } close() { + this.server.closeIdleConnections(); return this.server.close(); } } diff --git a/test/index.js b/test/index.js index 2617e83..d3eb113 100644 --- a/test/index.js +++ b/test/index.js @@ -284,7 +284,7 @@ test('server/doh#cors - default', async function() { }); const { headers } = await get(`http://localhost:${port}`); assert.equal(headers['access-control-allow-origin'], '*'); - server.server.close(); + server.close(); }); test('server/doh#cors - no cors', async function() { @@ -297,7 +297,7 @@ test('server/doh#cors - no cors', async function() { }); const { headers } = await get(`http://localhost:${port}`); assert.equal(headers['access-control-allow-origin'], undefined); - server.server.close(); + server.close(); }); test('server/doh#cors - cors origin', async function() { @@ -311,7 +311,7 @@ test('server/doh#cors - cors origin', async function() { const { headers } = await get(`http://localhost:${port}`); assert.equal(headers['access-control-allow-origin'], 'some.domain'); assert.equal(headers.vary, 'Origin'); - server.server.close(); + server.close(); }); test('server/doh#cors - cors function', async function() { @@ -335,7 +335,7 @@ test('server/doh#cors - cors function', async function() { headers = (await get(`http://localhost:${port}`, { headers: { origin: 'b.domain' } })).headers; assert.equal(headers['access-control-allow-origin'], 'false'); assert.equal(headers.vary, 'Origin'); - server.server.close(); + server.close(); }); // test('server/all#simple-request', async() => { @@ -459,9 +459,13 @@ function get(url, options) { } test('client/doh', async() => { - const res = await DOHClient({ - dns: 'https://1.0.0.1/dns-query', - })('cdnjs.com', 'NS'); + const timeout = new Promise((resolve, reject) => + setTimeout(() => reject(new Error('DOH client timed out after 10s')), 10000).unref(), + ); + const res = await Promise.race([ + DOHClient({ dns: 'https://1.0.0.1/dns-query' })('cdnjs.com', 'NS'), + timeout, + ]); // console.log(res); assert.equal(res.answers.length, 2);