Fix pinned lookup for dual-stack HTTPS requests

This commit is contained in:
Codex committed 2026-10-13 21:53:59 +02:00
1 parent cc2fd05062
commit 93f07e838e
2 files changed
+22 -3

No files matched your search

+14 -1
View File
@@ -3,7 +3,7 @@
const test = require('node:test');
const assert = require('node:assert/strict');
const { SlowHttp, StopScrapeError } = require('../lib/http');
const { publicAddress, validateWeebRequest } = require('../plugins/broker');
const { publicAddress, validateWeebRequest, pinnedLookup } = require('../plugins/broker');
test('plugin broker rejects local, private, non-TLS, and cross-source URLs', () => {
for (const address of ['127.0.0.1', '10.0.0.5', '192.168.1.1', '169.254.169.254', '::1', '::ffff:127.0.0.1']) {
@@ -17,6 +17,19 @@ test('plugin broker rejects local, private, non-TLS, and cross-source URLs', ()
assert.doesNotThrow(() => validateWeebRequest('https://img.example/page.jpg'));
});
test('pinned DNS lookup supports both Node single-address and all-address requests', () => {
const lookup = pinnedLookup({ address: '1.1.1.1', family: 4 });
lookup('example.com', { all: false }, (error, address, family) => {
assert.equal(error, null);
assert.equal(address, '1.1.1.1');
assert.equal(family, 4);
});
lookup('example.com', { all: true }, (error, addresses) => {
assert.equal(error, null);
assert.deepEqual(addresses, [{ address: '1.1.1.1', family: 4 }]);
});
});
test('redirect hops are validated and paced before another request', async () => {
const calls = [];
const http = new SlowHttp({