@@ -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