@@ -28,11 +28,16 @@ const uv = process.binding('uv');
28
28
const internalNet = require ( 'internal/net' ) ;
29
29
const { customPromisifyArgs } = require ( 'internal/util' ) ;
30
30
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 ( ) ;
34
40
35
- const isIP = cares . isIP ;
36
41
const isLegalPort = internalNet . isLegalPort ;
37
42
38
43
@@ -240,8 +245,6 @@ function onresolve(err, result, ttls) {
240
245
241
246
242
247
function resolver ( bindingName ) {
243
- var binding = cares [ bindingName ] ;
244
-
245
248
return function query ( name , /* options, */ callback ) {
246
249
var options ;
247
250
if ( arguments . length > 2 ) {
@@ -261,7 +264,7 @@ function resolver(bindingName) {
261
264
req . hostname = name ;
262
265
req . oncomplete = onresolve ;
263
266
req . ttl = ! ! ( options && options . ttl ) ;
264
- var err = binding ( req , name ) ;
267
+ var err = defaultChannel [ bindingName ] ( req , name ) ;
265
268
if ( err ) throw errnoException ( err , bindingName ) ;
266
269
return req ;
267
270
} ;
@@ -303,7 +306,7 @@ function resolve(hostname, type_, callback_) {
303
306
304
307
305
308
function getServers ( ) {
306
- const ret = cares . getServers ( ) ;
309
+ const ret = defaultChannel . getServers ( ) ;
307
310
return ret . map ( ( val ) => {
308
311
if ( ! val [ 1 ] || val [ 1 ] === IANA_DNS_PORT ) return val [ 0 ] ;
309
312
@@ -316,7 +319,7 @@ function getServers() {
316
319
function setServers ( servers ) {
317
320
// cache the original servers because in the event of an error setting the
318
321
// servers cares won't have any servers available for resolution
319
- const orig = cares . getServers ( ) ;
322
+ const orig = defaultChannel . getServers ( ) ;
320
323
const newSet = [ ] ;
321
324
const IPv6RE = / \[ ( .* ) \] / ;
322
325
const addrSplitRE = / ( ^ .+ ?) (?: : ( \d + ) ) ? $ / ;
@@ -348,11 +351,11 @@ function setServers(servers) {
348
351
throw new Error ( `IP address is not properly formatted: ${ serv } ` ) ;
349
352
} ) ;
350
353
351
- const errorNumber = cares . setServers ( newSet ) ;
354
+ const errorNumber = defaultChannel . setServers ( newSet ) ;
352
355
353
356
if ( errorNumber !== 0 ) {
354
357
// reset the servers to the old servers, because ares probably unset them
355
- cares . setServers ( orig . join ( ',' ) ) ;
358
+ defaultChannel . setServers ( orig . join ( ',' ) ) ;
356
359
357
360
var err = cares . strerror ( errorNumber ) ;
358
361
throw new Error ( `c-ares failed to set servers: "${ err } " [${ servers } ]` ) ;
0 commit comments