Skip to content

Commit 7683e96

Browse files
F3n67utargos
authored andcommitted
dns: export error code constants from dns/promises
PR-URL: #43176 Reviewed-By: Matteo Collina <[email protected]> Reviewed-By: Minwoo Jung <[email protected]> Reviewed-By: James M Snell <[email protected]>
1 parent ea3ca87 commit 7683e96

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
@@ -1293,6 +1293,8 @@ Each DNS query can return one of the following error codes:
12931293
* `dns.ADDRGETNETWORKPARAMS`: Could not find `GetNetworkParams` function.
12941294
* `dns.CANCELLED`: DNS query cancelled.
12951295

1296+
The above error codes are also exported by the `dnsPromises` API, e.g., `dnsPromises.NODATA`.
1297+
12961298
## Implementation considerations
12971299

12981300
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,
@@ -352,30 +379,30 @@ module.exports = {
352379
V4MAPPED: cares.AI_V4MAPPED,
353380

354381
// ERROR CODES
355-
NODATA: 'ENODATA',
356-
FORMERR: 'EFORMERR',
357-
SERVFAIL: 'ESERVFAIL',
358-
NOTFOUND: 'ENOTFOUND',
359-
NOTIMP: 'ENOTIMP',
360-
REFUSED: 'EREFUSED',
361-
BADQUERY: 'EBADQUERY',
362-
BADNAME: 'EBADNAME',
363-
BADFAMILY: 'EBADFAMILY',
364-
BADRESP: 'EBADRESP',
365-
CONNREFUSED: 'ECONNREFUSED',
366-
TIMEOUT: 'ETIMEOUT',
367-
EOF: 'EOF',
368-
FILE: 'EFILE',
369-
NOMEM: 'ENOMEM',
370-
DESTRUCTION: 'EDESTRUCTION',
371-
BADSTR: 'EBADSTR',
372-
BADFLAGS: 'EBADFLAGS',
373-
NONAME: 'ENONAME',
374-
BADHINTS: 'EBADHINTS',
375-
NOTINITIALIZED: 'ENOTINITIALIZED',
376-
LOADIPHLPAPI: 'ELOADIPHLPAPI',
377-
ADDRGETNETWORKPARAMS: 'EADDRGETNETWORKPARAMS',
378-
CANCELLED: 'ECANCELLED'
382+
NODATA,
383+
FORMERR,
384+
SERVFAIL,
385+
NOTFOUND,
386+
NOTIMP,
387+
REFUSED,
388+
BADQUERY,
389+
BADNAME,
390+
BADFAMILY,
391+
BADRESP,
392+
CONNREFUSED,
393+
TIMEOUT,
394+
EOF,
395+
FILE,
396+
NOMEM,
397+
DESTRUCTION,
398+
BADSTR,
399+
BADFLAGS,
400+
NONAME,
401+
BADHINTS,
402+
NOTINITIALIZED,
403+
LOADIPHLPAPI,
404+
ADDRGETNETWORKPARAMS,
405+
CANCELLED,
379406
};
380407

381408
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');
@@ -309,5 +336,35 @@ Resolver.prototype.resolve = function resolve(hostname, rrtype) {
309336
};
310337

311338

312-
module.exports = { lookup, lookupService, Resolver };
339+
module.exports = {
340+
lookup,
341+
lookupService,
342+
Resolver,
343+
344+
// ERROR CODES
345+
NODATA,
346+
FORMERR,
347+
SERVFAIL,
348+
NOTFOUND,
349+
NOTIMP,
350+
REFUSED,
351+
BADQUERY,
352+
BADNAME,
353+
BADFAMILY,
354+
BADRESP,
355+
CONNREFUSED,
356+
TIMEOUT,
357+
EOF,
358+
FILE,
359+
NOMEM,
360+
DESTRUCTION,
361+
BADSTR,
362+
BADFLAGS,
363+
NONAME,
364+
BADHINTS,
365+
NOTINITIALIZED,
366+
LOADIPHLPAPI,
367+
ADDRGETNETWORKPARAMS,
368+
CANCELLED,
369+
};
313370
bindDefaultResolver(module.exports, Resolver.prototype);

lib/internal/dns/utils.js

+29
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,34 @@ function setDefaultResultOrder(value) {
207207
dnsOrder = value;
208208
}
209209

210+
// ERROR CODES
211+
const errorCodes = {
212+
NODATA: 'ENODATA',
213+
FORMERR: 'EFORMERR',
214+
SERVFAIL: 'ESERVFAIL',
215+
NOTFOUND: 'ENOTFOUND',
216+
NOTIMP: 'ENOTIMP',
217+
REFUSED: 'EREFUSED',
218+
BADQUERY: 'EBADQUERY',
219+
BADNAME: 'EBADNAME',
220+
BADFAMILY: 'EBADFAMILY',
221+
BADRESP: 'EBADRESP',
222+
CONNREFUSED: 'ECONNREFUSED',
223+
TIMEOUT: 'ETIMEOUT',
224+
EOF: 'EOF',
225+
FILE: 'EFILE',
226+
NOMEM: 'ENOMEM',
227+
DESTRUCTION: 'EDESTRUCTION',
228+
BADSTR: 'EBADSTR',
229+
BADFLAGS: 'EBADFLAGS',
230+
NONAME: 'ENONAME',
231+
BADHINTS: 'EBADHINTS',
232+
NOTINITIALIZED: 'ENOTINITIALIZED',
233+
LOADIPHLPAPI: 'ELOADIPHLPAPI',
234+
ADDRGETNETWORKPARAMS: 'EADDRGETNETWORKPARAMS',
235+
CANCELLED: 'ECANCELLED',
236+
};
237+
210238
module.exports = {
211239
bindDefaultResolver,
212240
getDefaultResolver,
@@ -218,4 +246,5 @@ module.exports = {
218246
emitInvalidHostnameWarning,
219247
getDefaultVerbatim,
220248
setDefaultResultOrder,
249+
errorCodes,
221250
};

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)