@@ -28,11 +28,16 @@ const uv = process.binding('uv');
2828const internalNet = require('internal/net');
2929const { customPromisifyArgs } = require('internal/util');
3030
31- const GetAddrInfoReqWrap = cares.GetAddrInfoReqWrap;
32- const GetNameInfoReqWrap = cares.GetNameInfoReqWrap;
33- const QueryReqWrap = cares.QueryReqWrap;
31+ const {
32+ GetAddrInfoReqWrap,
33+ GetNameInfoReqWrap,
34+ QueryReqWrap,
35+ ChannelWrap,
36+ isIP
37+ } = cares;
38+
39+ const defaultChannel = new ChannelWrap();
3440
35- const isIP = cares.isIP;
3641const isLegalPort = internalNet.isLegalPort;
3742
3843
@@ -240,8 +245,6 @@ function onresolve(err, result, ttls) {
240245
241246
242247function resolver(bindingName) {
243- var binding = cares[bindingName];
244-
245248 return function query(name, /* options, */ callback) {
246249 var options;
247250 if (arguments.length > 2) {
@@ -261,7 +264,7 @@ function resolver(bindingName) {
261264 req.hostname = name;
262265 req.oncomplete = onresolve;
263266 req.ttl = !!(options && options.ttl);
264- var err = binding (req, name);
267+ var err = defaultChannel[bindingName] (req, name);
265268 if (err) throw errnoException(err, bindingName);
266269 return req;
267270 };
@@ -303,7 +306,7 @@ function resolve(hostname, type_, callback_) {
303306
304307
305308function getServers() {
306- const ret = cares .getServers();
309+ const ret = defaultChannel .getServers();
307310 return ret.map((val) => {
308311 if (!val[1] || val[1] === IANA_DNS_PORT) return val[0];
309312
@@ -316,7 +319,7 @@ function getServers() {
316319function setServers(servers) {
317320 // cache the original servers because in the event of an error setting the
318321 // servers cares won't have any servers available for resolution
319- const orig = cares .getServers();
322+ const orig = defaultChannel .getServers();
320323 const newSet = [];
321324 const IPv6RE = /\[(.*)\]/;
322325 const addrSplitRE = /(^.+?)(?::(\d+))?$/;
@@ -348,11 +351,11 @@ function setServers(servers) {
348351 throw new Error(`IP address is not properly formatted: ${serv}`);
349352 });
350353
351- const errorNumber = cares .setServers(newSet);
354+ const errorNumber = defaultChannel .setServers(newSet);
352355
353356 if (errorNumber !== 0) {
354357 // reset the servers to the old servers, because ares probably unset them
355- cares .setServers(orig.join(','));
358+ defaultChannel .setServers(orig.join(','));
356359
357360 var err = cares.strerror(errorNumber);
358361 throw new Error(`c-ares failed to set servers: "${err}" [${servers}]`);
0 commit comments