Skip to content

Commit 0bca7b7

Browse files
F3n67utargos
authored andcommitted
dns: export error code constants from dns/promises
PR-URL: #43176 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Minwoo Jung <nodecorelab@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
1 parent d71ba32 commit 0bca7b7

File tree

5 files changed

+168
-26
lines changed

5 files changed

+168
-26
lines changed

doc/api/dns.md

+2
Original file line numberDiff line numberDiff line change
@@ -1405,6 +1405,8 @@ Each DNS query can return one of the following error codes:
14051405
* `dns.ADDRGETNETWORKPARAMS`: Could not find `GetNetworkParams` function.
14061406
* `dns.CANCELLED`: DNS query cancelled.
14071407

1408+
The above error codes are also exported by the `dnsPromises` API, e.g., `dnsPromises.NODATA`.
1409+
14081410
## Implementation considerations
14091411

14101412
Although [`dns.lookup()`][] and the various `dns.resolve*()/dns.reverse()`

lib/dns.js

+51-24
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,34 @@ const {
4444
emitInvalidHostnameWarning,
4545
getDefaultVerbatim,
4646
setDefaultResultOrder,
47+
errorCodes: dnsErrorCodes,
4748
} = require('internal/dns/utils');
49+
const {
50+
NODATA,
51+
FORMERR,
52+
SERVFAIL,
53+
NOTFOUND,
54+
NOTIMP,
55+
REFUSED,
56+
BADQUERY,
57+
BADNAME,
58+
BADFAMILY,
59+
BADRESP,
60+
CONNREFUSED,
61+
TIMEOUT,
62+
EOF,
63+
FILE,
64+
NOMEM,
65+
DESTRUCTION,
66+
BADSTR,
67+
BADFLAGS,
68+
NONAME,
69+
BADHINTS,
70+
NOTINITIALIZED,
71+
LOADIPHLPAPI,
72+
ADDRGETNETWORKPARAMS,
73+
CANCELLED,
74+
} = dnsErrorCodes;
4875
const {
4976
ERR_INVALID_ARG_TYPE,
5077
ERR_INVALID_ARG_VALUE,
@@ -376,30 +403,30 @@ module.exports = {
376403
V4MAPPED: cares.AI_V4MAPPED,
377404

378405
// ERROR CODES
379-
NODATA: 'ENODATA',
380-
FORMERR: 'EFORMERR',
381-
SERVFAIL: 'ESERVFAIL',
382-
NOTFOUND: 'ENOTFOUND',
383-
NOTIMP: 'ENOTIMP',
384-
REFUSED: 'EREFUSED',
385-
BADQUERY: 'EBADQUERY',
386-
BADNAME: 'EBADNAME',
387-
BADFAMILY: 'EBADFAMILY',
388-
BADRESP: 'EBADRESP',
389-
CONNREFUSED: 'ECONNREFUSED',
390-
TIMEOUT: 'ETIMEOUT',
391-
EOF: 'EOF',
392-
FILE: 'EFILE',
393-
NOMEM: 'ENOMEM',
394-
DESTRUCTION: 'EDESTRUCTION',
395-
BADSTR: 'EBADSTR',
396-
BADFLAGS: 'EBADFLAGS',
397-
NONAME: 'ENONAME',
398-
BADHINTS: 'EBADHINTS',
399-
NOTINITIALIZED: 'ENOTINITIALIZED',
400-
LOADIPHLPAPI: 'ELOADIPHLPAPI',
401-
ADDRGETNETWORKPARAMS: 'EADDRGETNETWORKPARAMS',
402-
CANCELLED: 'ECANCELLED'
406+
NODATA,
407+
FORMERR,
408+
SERVFAIL,
409+
NOTFOUND,
410+
NOTIMP,
411+
REFUSED,
412+
BADQUERY,
413+
BADNAME,
414+
BADFAMILY,
415+
BADRESP,
416+
CONNREFUSED,
417+
TIMEOUT,
418+
EOF,
419+
FILE,
420+
NOMEM,
421+
DESTRUCTION,
422+
BADSTR,
423+
BADFLAGS,
424+
NONAME,
425+
BADHINTS,
426+
NOTINITIALIZED,
427+
LOADIPHLPAPI,
428+
ADDRGETNETWORKPARAMS,
429+
CANCELLED,
403430
};
404431

405432
bindDefaultResolver(module.exports, getDefaultResolver());

lib/internal/dns/promises.js

+58-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,34 @@ const {
1616
validateTries,
1717
emitInvalidHostnameWarning,
1818
getDefaultVerbatim,
19+
errorCodes: dnsErrorCodes,
1920
} = require('internal/dns/utils');
21+
const {
22+
NODATA,
23+
FORMERR,
24+
SERVFAIL,
25+
NOTFOUND,
26+
NOTIMP,
27+
REFUSED,
28+
BADQUERY,
29+
BADNAME,
30+
BADFAMILY,
31+
BADRESP,
32+
CONNREFUSED,
33+
TIMEOUT,
34+
EOF,
35+
FILE,
36+
NOMEM,
37+
DESTRUCTION,
38+
BADSTR,
39+
BADFLAGS,
40+
NONAME,
41+
BADHINTS,
42+
NOTINITIALIZED,
43+
LOADIPHLPAPI,
44+
ADDRGETNETWORKPARAMS,
45+
CANCELLED,
46+
} = dnsErrorCodes;
2047
const { codes, dnsException } = require('internal/errors');
2148
const { toASCII } = require('internal/idna');
2249
const { isIP } = require('internal/net');
@@ -323,5 +350,35 @@ Resolver.prototype.resolve = function resolve(hostname, rrtype) {
323350
};
324351

325352

326-
module.exports = { lookup, lookupService, Resolver };
353+
module.exports = {
354+
lookup,
355+
lookupService,
356+
Resolver,
357+
358+
// ERROR CODES
359+
NODATA,
360+
FORMERR,
361+
SERVFAIL,
362+
NOTFOUND,
363+
NOTIMP,
364+
REFUSED,
365+
BADQUERY,
366+
BADNAME,
367+
BADFAMILY,
368+
BADRESP,
369+
CONNREFUSED,
370+
TIMEOUT,
371+
EOF,
372+
FILE,
373+
NOMEM,
374+
DESTRUCTION,
375+
BADSTR,
376+
BADFLAGS,
377+
NONAME,
378+
BADHINTS,
379+
NOTINITIALIZED,
380+
LOADIPHLPAPI,
381+
ADDRGETNETWORKPARAMS,
382+
CANCELLED,
383+
};
327384
bindDefaultResolver(module.exports, Resolver.prototype);

lib/internal/dns/utils.js

+29
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,34 @@ function setDefaultResultOrder(value) {
201201
dnsOrder = value;
202202
}
203203

204+
// ERROR CODES
205+
const errorCodes = {
206+
NODATA: 'ENODATA',
207+
FORMERR: 'EFORMERR',
208+
SERVFAIL: 'ESERVFAIL',
209+
NOTFOUND: 'ENOTFOUND',
210+
NOTIMP: 'ENOTIMP',
211+
REFUSED: 'EREFUSED',
212+
BADQUERY: 'EBADQUERY',
213+
BADNAME: 'EBADNAME',
214+
BADFAMILY: 'EBADFAMILY',
215+
BADRESP: 'EBADRESP',
216+
CONNREFUSED: 'ECONNREFUSED',
217+
TIMEOUT: 'ETIMEOUT',
218+
EOF: 'EOF',
219+
FILE: 'EFILE',
220+
NOMEM: 'ENOMEM',
221+
DESTRUCTION: 'EDESTRUCTION',
222+
BADSTR: 'EBADSTR',
223+
BADFLAGS: 'EBADFLAGS',
224+
NONAME: 'ENONAME',
225+
BADHINTS: 'EBADHINTS',
226+
NOTINITIALIZED: 'ENOTINITIALIZED',
227+
LOADIPHLPAPI: 'ELOADIPHLPAPI',
228+
ADDRGETNETWORKPARAMS: 'EADDRGETNETWORKPARAMS',
229+
CANCELLED: 'ECANCELLED',
230+
};
231+
204232
module.exports = {
205233
bindDefaultResolver,
206234
getDefaultResolver,
@@ -212,4 +240,5 @@ module.exports = {
212240
emitInvalidHostnameWarning,
213241
getDefaultVerbatim,
214242
setDefaultResultOrder,
243+
errorCodes,
215244
};

test/parallel/test-dns-promises-exists.js

+28-1
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,32 @@
22

33
require('../common');
44
const assert = require('assert');
5+
const dnsPromises = require('dns/promises');
6+
const dns = require('dns');
57

6-
assert.strictEqual(require('dns/promises'), require('dns').promises);
8+
assert.strictEqual(dnsPromises, dns.promises);
9+
10+
assert.strictEqual(dnsPromises.NODATA, dns.NODATA);
11+
assert.strictEqual(dnsPromises.FORMERR, dns.FORMERR);
12+
assert.strictEqual(dnsPromises.SERVFAIL, dns.SERVFAIL);
13+
assert.strictEqual(dnsPromises.NOTFOUND, dns.NOTFOUND);
14+
assert.strictEqual(dnsPromises.NOTIMP, dns.NOTIMP);
15+
assert.strictEqual(dnsPromises.REFUSED, dns.REFUSED);
16+
assert.strictEqual(dnsPromises.BADQUERY, dns.BADQUERY);
17+
assert.strictEqual(dnsPromises.BADNAME, dns.BADNAME);
18+
assert.strictEqual(dnsPromises.BADFAMILY, dns.BADFAMILY);
19+
assert.strictEqual(dnsPromises.BADRESP, dns.BADRESP);
20+
assert.strictEqual(dnsPromises.CONNREFUSED, dns.CONNREFUSED);
21+
assert.strictEqual(dnsPromises.TIMEOUT, dns.TIMEOUT);
22+
assert.strictEqual(dnsPromises.EOF, dns.EOF);
23+
assert.strictEqual(dnsPromises.FILE, dns.FILE);
24+
assert.strictEqual(dnsPromises.NOMEM, dns.NOMEM);
25+
assert.strictEqual(dnsPromises.DESTRUCTION, dns.DESTRUCTION);
26+
assert.strictEqual(dnsPromises.BADSTR, dns.BADSTR);
27+
assert.strictEqual(dnsPromises.BADFLAGS, dns.BADFLAGS);
28+
assert.strictEqual(dnsPromises.NONAME, dns.NONAME);
29+
assert.strictEqual(dnsPromises.BADHINTS, dns.BADHINTS);
30+
assert.strictEqual(dnsPromises.NOTINITIALIZED, dns.NOTINITIALIZED);
31+
assert.strictEqual(dnsPromises.LOADIPHLPAPI, dns.LOADIPHLPAPI);
32+
assert.strictEqual(dnsPromises.ADDRGETNETWORKPARAMS, dns.ADDRGETNETWORKPARAMS);
33+
assert.strictEqual(dnsPromises.CANCELLED, dns.CANCELLED);

0 commit comments

Comments
 (0)