• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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