Skip to content

Commit 039a1a9

Browse files
jasnelladdaleax
authored andcommitted
dns: minor refactor of dns module
Move to the more efficient module.exports = {} pattern. PR-URL: #11597 Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Claudio Rodriguez <[email protected]> Reviewed-By: Michaël Zasso <[email protected]>
1 parent 821d713 commit 039a1a9

File tree

1 file changed

+74
-56
lines changed

1 file changed

+74
-56
lines changed

lib/dns.js

+74-56
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ function onlookupall(err, addresses) {
9999

100100
// Easy DNS A/AAAA look up
101101
// lookup(hostname, [options,] callback)
102-
exports.lookup = function lookup(hostname, options, callback) {
102+
function lookup(hostname, options, callback) {
103103
var hints = 0;
104104
var family = -1;
105105
var all = false;
@@ -119,9 +119,9 @@ exports.lookup = function lookup(hostname, options, callback) {
119119
all = options.all === true;
120120

121121
if (hints !== 0 &&
122-
hints !== exports.ADDRCONFIG &&
123-
hints !== exports.V4MAPPED &&
124-
hints !== (exports.ADDRCONFIG | exports.V4MAPPED)) {
122+
hints !== cares.AI_ADDRCONFIG &&
123+
hints !== cares.AI_V4MAPPED &&
124+
hints !== (cares.AI_ADDRCONFIG | cares.AI_V4MAPPED)) {
125125
throw new TypeError('Invalid argument: hints must use valid flags');
126126
}
127127
} else {
@@ -166,7 +166,7 @@ exports.lookup = function lookup(hostname, options, callback) {
166166

167167
callback.immediately = true;
168168
return req;
169-
};
169+
}
170170

171171

172172
function onlookupservice(err, host, service) {
@@ -178,7 +178,7 @@ function onlookupservice(err, host, service) {
178178

179179

180180
// lookupService(address, port, callback)
181-
exports.lookupService = function lookupService(host, port, callback) {
181+
function lookupService(host, port, callback) {
182182
if (arguments.length !== 3)
183183
throw new Error('Invalid arguments');
184184

@@ -205,7 +205,7 @@ exports.lookupService = function lookupService(host, port, callback) {
205205

206206
callback.immediately = true;
207207
return req;
208-
};
208+
}
209209

210210

211211
function onresolve(err, result, ttls) {
@@ -251,26 +251,25 @@ function resolver(bindingName) {
251251

252252

253253
var resolveMap = Object.create(null);
254-
exports.resolve4 = resolveMap.A = resolver('queryA');
255-
exports.resolve6 = resolveMap.AAAA = resolver('queryAaaa');
256-
exports.resolveCname = resolveMap.CNAME = resolver('queryCname');
257-
exports.resolveMx = resolveMap.MX = resolver('queryMx');
258-
exports.resolveNs = resolveMap.NS = resolver('queryNs');
259-
exports.resolveTxt = resolveMap.TXT = resolver('queryTxt');
260-
exports.resolveSrv = resolveMap.SRV = resolver('querySrv');
261-
exports.resolvePtr = resolveMap.PTR = resolver('queryPtr');
262-
exports.resolveNaptr = resolveMap.NAPTR = resolver('queryNaptr');
263-
exports.resolveSoa = resolveMap.SOA = resolver('querySoa');
264-
exports.reverse = resolver('getHostByAddr');
265-
266-
267-
exports.resolve = function resolve(hostname, type_, callback_) {
254+
resolveMap.A = resolver('queryA');
255+
resolveMap.AAAA = resolver('queryAaaa');
256+
resolveMap.CNAME = resolver('queryCname');
257+
resolveMap.MX = resolver('queryMx');
258+
resolveMap.NS = resolver('queryNs');
259+
resolveMap.TXT = resolver('queryTxt');
260+
resolveMap.SRV = resolver('querySrv');
261+
resolveMap.PTR = resolver('queryPtr');
262+
resolveMap.NAPTR = resolver('queryNaptr');
263+
resolveMap.SOA = resolver('querySoa');
264+
265+
266+
function resolve(hostname, type_, callback_) {
268267
var resolver, callback;
269268
if (typeof type_ === 'string') {
270269
resolver = resolveMap[type_];
271270
callback = callback_;
272271
} else if (typeof type_ === 'function') {
273-
resolver = exports.resolve4;
272+
resolver = resolveMap.A;
274273
callback = type_;
275274
} else {
276275
throw new Error('"type" argument must be a string');
@@ -281,15 +280,15 @@ exports.resolve = function resolve(hostname, type_, callback_) {
281280
} else {
282281
throw new Error(`Unknown type "${type_}"`);
283282
}
284-
};
283+
}
285284

286285

287-
exports.getServers = function getServers() {
286+
function getServers() {
288287
return cares.getServers();
289-
};
288+
}
290289

291290

292-
exports.setServers = function setServers(servers) {
291+
function setServers(servers) {
293292
// cache the original servers because in the event of an error setting the
294293
// servers cares won't have any servers available for resolution
295294
const orig = cares.getServers();
@@ -326,34 +325,53 @@ exports.setServers = function setServers(servers) {
326325
var err = cares.strerror(errorNumber);
327326
throw new Error(`c-ares failed to set servers: "${err}" [${servers}]`);
328327
}
329-
};
328+
}
330329

331-
// uv_getaddrinfo flags
332-
exports.ADDRCONFIG = cares.AI_ADDRCONFIG;
333-
exports.V4MAPPED = cares.AI_V4MAPPED;
334-
335-
// ERROR CODES
336-
exports.NODATA = 'ENODATA';
337-
exports.FORMERR = 'EFORMERR';
338-
exports.SERVFAIL = 'ESERVFAIL';
339-
exports.NOTFOUND = 'ENOTFOUND';
340-
exports.NOTIMP = 'ENOTIMP';
341-
exports.REFUSED = 'EREFUSED';
342-
exports.BADQUERY = 'EBADQUERY';
343-
exports.BADNAME = 'EBADNAME';
344-
exports.BADFAMILY = 'EBADFAMILY';
345-
exports.BADRESP = 'EBADRESP';
346-
exports.CONNREFUSED = 'ECONNREFUSED';
347-
exports.TIMEOUT = 'ETIMEOUT';
348-
exports.EOF = 'EOF';
349-
exports.FILE = 'EFILE';
350-
exports.NOMEM = 'ENOMEM';
351-
exports.DESTRUCTION = 'EDESTRUCTION';
352-
exports.BADSTR = 'EBADSTR';
353-
exports.BADFLAGS = 'EBADFLAGS';
354-
exports.NONAME = 'ENONAME';
355-
exports.BADHINTS = 'EBADHINTS';
356-
exports.NOTINITIALIZED = 'ENOTINITIALIZED';
357-
exports.LOADIPHLPAPI = 'ELOADIPHLPAPI';
358-
exports.ADDRGETNETWORKPARAMS = 'EADDRGETNETWORKPARAMS';
359-
exports.CANCELLED = 'ECANCELLED';
330+
module.exports = {
331+
lookup,
332+
lookupService,
333+
getServers,
334+
setServers,
335+
resolve,
336+
resolve4: resolveMap.A,
337+
resolve6: resolveMap.AAAA,
338+
resolveCname: resolveMap.CNAME,
339+
resolveMx: resolveMap.MX,
340+
resolveNs: resolveMap.NS,
341+
resolveTxt: resolveMap.TXT,
342+
resolveSrv: resolveMap.SRV,
343+
resolvePtr: resolveMap.PTR,
344+
resolveNaptr: resolveMap.NAPTR,
345+
resolveSoa: resolveMap.SOA,
346+
reverse: resolver('getHostByAddr'),
347+
348+
// uv_getaddrinfo flags
349+
ADDRCONFIG: cares.AI_ADDRCONFIG,
350+
V4MAPPED: cares.AI_V4MAPPED,
351+
352+
// ERROR CODES
353+
NODATA: 'ENODATA',
354+
FORMERR: 'EFORMERR',
355+
SERVFAIL: 'ESERVFAIL',
356+
NOTFOUND: 'ENOTFOUND',
357+
NOTIMP: 'ENOTIMP',
358+
REFUSED: 'EREFUSED',
359+
BADQUERY: 'EBADQUERY',
360+
BADNAME: 'EBADNAME',
361+
BADFAMILY: 'EBADFAMILY',
362+
BADRESP: 'EBADRESP',
363+
CONNREFUSED: 'ECONNREFUSED',
364+
TIMEOUT: 'ETIMEOUT',
365+
EOF: 'EOF',
366+
FILE: 'EFILE',
367+
NOMEM: 'ENOMEM',
368+
DESTRUCTION: 'EDESTRUCTION',
369+
BADSTR: 'EBADSTR',
370+
BADFLAGS: 'EBADFLAGS',
371+
NONAME: 'ENONAME',
372+
BADHINTS: 'EBADHINTS',
373+
NOTINITIALIZED: 'ENOTINITIALIZED',
374+
LOADIPHLPAPI: 'ELOADIPHLPAPI',
375+
ADDRGETNETWORKPARAMS: 'EADDRGETNETWORKPARAMS',
376+
CANCELLED: 'ECANCELLED'
377+
};

0 commit comments

Comments
 (0)