dns: export error code constants from dns/promises

PR-URL: https://github.com/nodejs/node/pull/43176
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Minwoo Jung <nodecorelab@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
Feng Yu 2022-06-18 20:54:31 +08:00 committed by GitHub
parent fe776b8f42
commit dc53c29b97
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 168 additions and 26 deletions

View File

@ -1405,6 +1405,8 @@ Each DNS query can return one of the following error codes:
* `dns.ADDRGETNETWORKPARAMS`: Could not find `GetNetworkParams` function.
* `dns.CANCELLED`: DNS query cancelled.
The above error codes are also exported by the `dnsPromises` API, e.g., `dnsPromises.NODATA`.
## Implementation considerations
Although [`dns.lookup()`][] and the various `dns.resolve*()/dns.reverse()`

View File

@ -44,7 +44,34 @@ const {
emitInvalidHostnameWarning,
getDefaultVerbatim,
setDefaultResultOrder,
errorCodes: dnsErrorCodes,
} = require('internal/dns/utils');
const {
NODATA,
FORMERR,
SERVFAIL,
NOTFOUND,
NOTIMP,
REFUSED,
BADQUERY,
BADNAME,
BADFAMILY,
BADRESP,
CONNREFUSED,
TIMEOUT,
EOF,
FILE,
NOMEM,
DESTRUCTION,
BADSTR,
BADFLAGS,
NONAME,
BADHINTS,
NOTINITIALIZED,
LOADIPHLPAPI,
ADDRGETNETWORKPARAMS,
CANCELLED,
} = dnsErrorCodes;
const {
ERR_INVALID_ARG_TYPE,
ERR_INVALID_ARG_VALUE,
@ -376,30 +403,30 @@ module.exports = {
V4MAPPED: cares.AI_V4MAPPED,
// ERROR CODES
NODATA: 'ENODATA',
FORMERR: 'EFORMERR',
SERVFAIL: 'ESERVFAIL',
NOTFOUND: 'ENOTFOUND',
NOTIMP: 'ENOTIMP',
REFUSED: 'EREFUSED',
BADQUERY: 'EBADQUERY',
BADNAME: 'EBADNAME',
BADFAMILY: 'EBADFAMILY',
BADRESP: 'EBADRESP',
CONNREFUSED: 'ECONNREFUSED',
TIMEOUT: 'ETIMEOUT',
EOF: 'EOF',
FILE: 'EFILE',
NOMEM: 'ENOMEM',
DESTRUCTION: 'EDESTRUCTION',
BADSTR: 'EBADSTR',
BADFLAGS: 'EBADFLAGS',
NONAME: 'ENONAME',
BADHINTS: 'EBADHINTS',
NOTINITIALIZED: 'ENOTINITIALIZED',
LOADIPHLPAPI: 'ELOADIPHLPAPI',
ADDRGETNETWORKPARAMS: 'EADDRGETNETWORKPARAMS',
CANCELLED: 'ECANCELLED'
NODATA,
FORMERR,
SERVFAIL,
NOTFOUND,
NOTIMP,
REFUSED,
BADQUERY,
BADNAME,
BADFAMILY,
BADRESP,
CONNREFUSED,
TIMEOUT,
EOF,
FILE,
NOMEM,
DESTRUCTION,
BADSTR,
BADFLAGS,
NONAME,
BADHINTS,
NOTINITIALIZED,
LOADIPHLPAPI,
ADDRGETNETWORKPARAMS,
CANCELLED,
};
bindDefaultResolver(module.exports, getDefaultResolver());

View File

@ -16,7 +16,34 @@ const {
validateTries,
emitInvalidHostnameWarning,
getDefaultVerbatim,
errorCodes: dnsErrorCodes,
} = require('internal/dns/utils');
const {
NODATA,
FORMERR,
SERVFAIL,
NOTFOUND,
NOTIMP,
REFUSED,
BADQUERY,
BADNAME,
BADFAMILY,
BADRESP,
CONNREFUSED,
TIMEOUT,
EOF,
FILE,
NOMEM,
DESTRUCTION,
BADSTR,
BADFLAGS,
NONAME,
BADHINTS,
NOTINITIALIZED,
LOADIPHLPAPI,
ADDRGETNETWORKPARAMS,
CANCELLED,
} = dnsErrorCodes;
const { codes, dnsException } = require('internal/errors');
const { toASCII } = require('internal/idna');
const { isIP } = require('internal/net');
@ -323,5 +350,35 @@ Resolver.prototype.resolve = function resolve(hostname, rrtype) {
};
module.exports = { lookup, lookupService, Resolver };
module.exports = {
lookup,
lookupService,
Resolver,
// ERROR CODES
NODATA,
FORMERR,
SERVFAIL,
NOTFOUND,
NOTIMP,
REFUSED,
BADQUERY,
BADNAME,
BADFAMILY,
BADRESP,
CONNREFUSED,
TIMEOUT,
EOF,
FILE,
NOMEM,
DESTRUCTION,
BADSTR,
BADFLAGS,
NONAME,
BADHINTS,
NOTINITIALIZED,
LOADIPHLPAPI,
ADDRGETNETWORKPARAMS,
CANCELLED,
};
bindDefaultResolver(module.exports, Resolver.prototype);

View File

@ -201,6 +201,34 @@ function setDefaultResultOrder(value) {
dnsOrder = value;
}
// ERROR CODES
const errorCodes = {
NODATA: 'ENODATA',
FORMERR: 'EFORMERR',
SERVFAIL: 'ESERVFAIL',
NOTFOUND: 'ENOTFOUND',
NOTIMP: 'ENOTIMP',
REFUSED: 'EREFUSED',
BADQUERY: 'EBADQUERY',
BADNAME: 'EBADNAME',
BADFAMILY: 'EBADFAMILY',
BADRESP: 'EBADRESP',
CONNREFUSED: 'ECONNREFUSED',
TIMEOUT: 'ETIMEOUT',
EOF: 'EOF',
FILE: 'EFILE',
NOMEM: 'ENOMEM',
DESTRUCTION: 'EDESTRUCTION',
BADSTR: 'EBADSTR',
BADFLAGS: 'EBADFLAGS',
NONAME: 'ENONAME',
BADHINTS: 'EBADHINTS',
NOTINITIALIZED: 'ENOTINITIALIZED',
LOADIPHLPAPI: 'ELOADIPHLPAPI',
ADDRGETNETWORKPARAMS: 'EADDRGETNETWORKPARAMS',
CANCELLED: 'ECANCELLED',
};
module.exports = {
bindDefaultResolver,
getDefaultResolver,
@ -212,4 +240,5 @@ module.exports = {
emitInvalidHostnameWarning,
getDefaultVerbatim,
setDefaultResultOrder,
errorCodes,
};

View File

@ -2,5 +2,32 @@
require('../common');
const assert = require('assert');
const dnsPromises = require('dns/promises');
const dns = require('dns');
assert.strictEqual(require('dns/promises'), require('dns').promises);
assert.strictEqual(dnsPromises, dns.promises);
assert.strictEqual(dnsPromises.NODATA, dns.NODATA);
assert.strictEqual(dnsPromises.FORMERR, dns.FORMERR);
assert.strictEqual(dnsPromises.SERVFAIL, dns.SERVFAIL);
assert.strictEqual(dnsPromises.NOTFOUND, dns.NOTFOUND);
assert.strictEqual(dnsPromises.NOTIMP, dns.NOTIMP);
assert.strictEqual(dnsPromises.REFUSED, dns.REFUSED);
assert.strictEqual(dnsPromises.BADQUERY, dns.BADQUERY);
assert.strictEqual(dnsPromises.BADNAME, dns.BADNAME);
assert.strictEqual(dnsPromises.BADFAMILY, dns.BADFAMILY);
assert.strictEqual(dnsPromises.BADRESP, dns.BADRESP);
assert.strictEqual(dnsPromises.CONNREFUSED, dns.CONNREFUSED);
assert.strictEqual(dnsPromises.TIMEOUT, dns.TIMEOUT);
assert.strictEqual(dnsPromises.EOF, dns.EOF);
assert.strictEqual(dnsPromises.FILE, dns.FILE);
assert.strictEqual(dnsPromises.NOMEM, dns.NOMEM);
assert.strictEqual(dnsPromises.DESTRUCTION, dns.DESTRUCTION);
assert.strictEqual(dnsPromises.BADSTR, dns.BADSTR);
assert.strictEqual(dnsPromises.BADFLAGS, dns.BADFLAGS);
assert.strictEqual(dnsPromises.NONAME, dns.NONAME);
assert.strictEqual(dnsPromises.BADHINTS, dns.BADHINTS);
assert.strictEqual(dnsPromises.NOTINITIALIZED, dns.NOTINITIALIZED);
assert.strictEqual(dnsPromises.LOADIPHLPAPI, dns.LOADIPHLPAPI);
assert.strictEqual(dnsPromises.ADDRGETNETWORKPARAMS, dns.ADDRGETNETWORKPARAMS);
assert.strictEqual(dnsPromises.CANCELLED, dns.CANCELLED);