dns: minor refactor of dns module
Move to the more efficient module.exports = {} pattern. PR-URL: https://github.com/nodejs/node/pull/11597 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Claudio Rodriguez <cjrodr@yahoo.com> Reviewed-By: Michaël Zasso <targos@protonmail.com>
This commit is contained in:
parent
1402fef098
commit
531de63c14
126
lib/dns.js
126
lib/dns.js
@ -99,7 +99,7 @@ function onlookupall(err, addresses) {
|
|||||||
|
|
||||||
// Easy DNS A/AAAA look up
|
// Easy DNS A/AAAA look up
|
||||||
// lookup(hostname, [options,] callback)
|
// lookup(hostname, [options,] callback)
|
||||||
exports.lookup = function lookup(hostname, options, callback) {
|
function lookup(hostname, options, callback) {
|
||||||
var hints = 0;
|
var hints = 0;
|
||||||
var family = -1;
|
var family = -1;
|
||||||
var all = false;
|
var all = false;
|
||||||
@ -119,9 +119,9 @@ exports.lookup = function lookup(hostname, options, callback) {
|
|||||||
all = options.all === true;
|
all = options.all === true;
|
||||||
|
|
||||||
if (hints !== 0 &&
|
if (hints !== 0 &&
|
||||||
hints !== exports.ADDRCONFIG &&
|
hints !== cares.AI_ADDRCONFIG &&
|
||||||
hints !== exports.V4MAPPED &&
|
hints !== cares.AI_V4MAPPED &&
|
||||||
hints !== (exports.ADDRCONFIG | exports.V4MAPPED)) {
|
hints !== (cares.AI_ADDRCONFIG | cares.AI_V4MAPPED)) {
|
||||||
throw new TypeError('Invalid argument: hints must use valid flags');
|
throw new TypeError('Invalid argument: hints must use valid flags');
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -166,7 +166,7 @@ exports.lookup = function lookup(hostname, options, callback) {
|
|||||||
|
|
||||||
callback.immediately = true;
|
callback.immediately = true;
|
||||||
return req;
|
return req;
|
||||||
};
|
}
|
||||||
|
|
||||||
|
|
||||||
function onlookupservice(err, host, service) {
|
function onlookupservice(err, host, service) {
|
||||||
@ -178,7 +178,7 @@ function onlookupservice(err, host, service) {
|
|||||||
|
|
||||||
|
|
||||||
// lookupService(address, port, callback)
|
// lookupService(address, port, callback)
|
||||||
exports.lookupService = function lookupService(host, port, callback) {
|
function lookupService(host, port, callback) {
|
||||||
if (arguments.length !== 3)
|
if (arguments.length !== 3)
|
||||||
throw new Error('Invalid arguments');
|
throw new Error('Invalid arguments');
|
||||||
|
|
||||||
@ -205,7 +205,7 @@ exports.lookupService = function lookupService(host, port, callback) {
|
|||||||
|
|
||||||
callback.immediately = true;
|
callback.immediately = true;
|
||||||
return req;
|
return req;
|
||||||
};
|
}
|
||||||
|
|
||||||
|
|
||||||
function onresolve(err, result, ttls) {
|
function onresolve(err, result, ttls) {
|
||||||
@ -251,26 +251,25 @@ function resolver(bindingName) {
|
|||||||
|
|
||||||
|
|
||||||
var resolveMap = Object.create(null);
|
var resolveMap = Object.create(null);
|
||||||
exports.resolve4 = resolveMap.A = resolver('queryA');
|
resolveMap.A = resolver('queryA');
|
||||||
exports.resolve6 = resolveMap.AAAA = resolver('queryAaaa');
|
resolveMap.AAAA = resolver('queryAaaa');
|
||||||
exports.resolveCname = resolveMap.CNAME = resolver('queryCname');
|
resolveMap.CNAME = resolver('queryCname');
|
||||||
exports.resolveMx = resolveMap.MX = resolver('queryMx');
|
resolveMap.MX = resolver('queryMx');
|
||||||
exports.resolveNs = resolveMap.NS = resolver('queryNs');
|
resolveMap.NS = resolver('queryNs');
|
||||||
exports.resolveTxt = resolveMap.TXT = resolver('queryTxt');
|
resolveMap.TXT = resolver('queryTxt');
|
||||||
exports.resolveSrv = resolveMap.SRV = resolver('querySrv');
|
resolveMap.SRV = resolver('querySrv');
|
||||||
exports.resolvePtr = resolveMap.PTR = resolver('queryPtr');
|
resolveMap.PTR = resolver('queryPtr');
|
||||||
exports.resolveNaptr = resolveMap.NAPTR = resolver('queryNaptr');
|
resolveMap.NAPTR = resolver('queryNaptr');
|
||||||
exports.resolveSoa = resolveMap.SOA = resolver('querySoa');
|
resolveMap.SOA = resolver('querySoa');
|
||||||
exports.reverse = resolver('getHostByAddr');
|
|
||||||
|
|
||||||
|
|
||||||
exports.resolve = function resolve(hostname, type_, callback_) {
|
function resolve(hostname, type_, callback_) {
|
||||||
var resolver, callback;
|
var resolver, callback;
|
||||||
if (typeof type_ === 'string') {
|
if (typeof type_ === 'string') {
|
||||||
resolver = resolveMap[type_];
|
resolver = resolveMap[type_];
|
||||||
callback = callback_;
|
callback = callback_;
|
||||||
} else if (typeof type_ === 'function') {
|
} else if (typeof type_ === 'function') {
|
||||||
resolver = exports.resolve4;
|
resolver = resolveMap.A;
|
||||||
callback = type_;
|
callback = type_;
|
||||||
} else {
|
} else {
|
||||||
throw new Error('"type" argument must be a string');
|
throw new Error('"type" argument must be a string');
|
||||||
@ -281,15 +280,15 @@ exports.resolve = function resolve(hostname, type_, callback_) {
|
|||||||
} else {
|
} else {
|
||||||
throw new Error(`Unknown type "${type_}"`);
|
throw new Error(`Unknown type "${type_}"`);
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
|
||||||
|
|
||||||
exports.getServers = function getServers() {
|
function getServers() {
|
||||||
return cares.getServers();
|
return cares.getServers();
|
||||||
};
|
}
|
||||||
|
|
||||||
|
|
||||||
exports.setServers = function setServers(servers) {
|
function setServers(servers) {
|
||||||
// cache the original servers because in the event of an error setting the
|
// cache the original servers because in the event of an error setting the
|
||||||
// servers cares won't have any servers available for resolution
|
// servers cares won't have any servers available for resolution
|
||||||
const orig = cares.getServers();
|
const orig = cares.getServers();
|
||||||
@ -326,34 +325,53 @@ exports.setServers = function setServers(servers) {
|
|||||||
var err = cares.strerror(errorNumber);
|
var err = cares.strerror(errorNumber);
|
||||||
throw new Error(`c-ares failed to set servers: "${err}" [${servers}]`);
|
throw new Error(`c-ares failed to set servers: "${err}" [${servers}]`);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
lookup,
|
||||||
|
lookupService,
|
||||||
|
getServers,
|
||||||
|
setServers,
|
||||||
|
resolve,
|
||||||
|
resolve4: resolveMap.A,
|
||||||
|
resolve6: resolveMap.AAAA,
|
||||||
|
resolveCname: resolveMap.CNAME,
|
||||||
|
resolveMx: resolveMap.MX,
|
||||||
|
resolveNs: resolveMap.NS,
|
||||||
|
resolveTxt: resolveMap.TXT,
|
||||||
|
resolveSrv: resolveMap.SRV,
|
||||||
|
resolvePtr: resolveMap.PTR,
|
||||||
|
resolveNaptr: resolveMap.NAPTR,
|
||||||
|
resolveSoa: resolveMap.SOA,
|
||||||
|
reverse: resolver('getHostByAddr'),
|
||||||
|
|
||||||
|
// uv_getaddrinfo flags
|
||||||
|
ADDRCONFIG: cares.AI_ADDRCONFIG,
|
||||||
|
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'
|
||||||
};
|
};
|
||||||
|
|
||||||
// uv_getaddrinfo flags
|
|
||||||
exports.ADDRCONFIG = cares.AI_ADDRCONFIG;
|
|
||||||
exports.V4MAPPED = cares.AI_V4MAPPED;
|
|
||||||
|
|
||||||
// ERROR CODES
|
|
||||||
exports.NODATA = 'ENODATA';
|
|
||||||
exports.FORMERR = 'EFORMERR';
|
|
||||||
exports.SERVFAIL = 'ESERVFAIL';
|
|
||||||
exports.NOTFOUND = 'ENOTFOUND';
|
|
||||||
exports.NOTIMP = 'ENOTIMP';
|
|
||||||
exports.REFUSED = 'EREFUSED';
|
|
||||||
exports.BADQUERY = 'EBADQUERY';
|
|
||||||
exports.BADNAME = 'EBADNAME';
|
|
||||||
exports.BADFAMILY = 'EBADFAMILY';
|
|
||||||
exports.BADRESP = 'EBADRESP';
|
|
||||||
exports.CONNREFUSED = 'ECONNREFUSED';
|
|
||||||
exports.TIMEOUT = 'ETIMEOUT';
|
|
||||||
exports.EOF = 'EOF';
|
|
||||||
exports.FILE = 'EFILE';
|
|
||||||
exports.NOMEM = 'ENOMEM';
|
|
||||||
exports.DESTRUCTION = 'EDESTRUCTION';
|
|
||||||
exports.BADSTR = 'EBADSTR';
|
|
||||||
exports.BADFLAGS = 'EBADFLAGS';
|
|
||||||
exports.NONAME = 'ENONAME';
|
|
||||||
exports.BADHINTS = 'EBADHINTS';
|
|
||||||
exports.NOTINITIALIZED = 'ENOTINITIALIZED';
|
|
||||||
exports.LOADIPHLPAPI = 'ELOADIPHLPAPI';
|
|
||||||
exports.ADDRGETNETWORKPARAMS = 'EADDRGETNETWORKPARAMS';
|
|
||||||
exports.CANCELLED = 'ECANCELLED';
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user