1'use strict'; 2const common = require('../common'); 3const dnstools = require('../common/dns'); 4const { Resolver } = require('dns'); 5const assert = require('assert'); 6const dgram = require('dgram'); 7 8const server = dgram.createSocket('udp4'); 9const resolver = new Resolver(); 10 11server.bind(0, common.mustCall(() => { 12 resolver.setServers([`127.0.0.1:${server.address().port}`]); 13 resolver.resolve4('example.org', common.mustCall((err, res) => { 14 assert.strictEqual(err.code, 'ECANCELLED'); 15 assert.strictEqual(err.errno, 'ECANCELLED'); 16 assert.strictEqual(err.syscall, 'queryA'); 17 assert.strictEqual(err.hostname, 'example.org'); 18 server.close(); 19 })); 20})); 21 22server.on('message', common.mustCall((msg, { address, port }) => { 23 const parsed = dnstools.parseDNSPacket(msg); 24 const domain = parsed.questions[0].domain; 25 assert.strictEqual(domain, 'example.org'); 26 27 // Do not send a reply. 28 resolver.cancel(); 29})); 30