@@ -29,8 +29,6 @@ const {
2929 customInspect,
3030 getAllowUnauthorized,
3131 getSocketType,
32- lookup4,
33- lookup6,
3432 setTransportParams,
3533 toggleListeners,
3634 validateNumber,
@@ -202,17 +200,12 @@ const {
202200
203201const emit = EventEmitter . prototype . emit ;
204202
205- // TODO(@jasnell): Temporary while converting to Promises-based API
206- const { lookup } = require ( 'dns' ) . promises ;
207-
208- const kAfterPreferredAddressLookup = Symbol ( 'kAfterPreferredAddressLookup' ) ;
209203const kAddSession = Symbol ( 'kAddSession' ) ;
210204const kAddStream = Symbol ( 'kAddStream' ) ;
211205const kBind = Symbol ( 'kBind' ) ;
212206const kClose = Symbol ( 'kClose' ) ;
213207const kCert = Symbol ( 'kCert' ) ;
214208const kClientHello = Symbol ( 'kClientHello' ) ;
215- const kCompleteListen = Symbol ( 'kCompleteListen' ) ;
216209const kDestroy = Symbol ( 'kDestroy' ) ;
217210const kEndpointBound = Symbol ( 'kEndpointBound' ) ;
218211const kEndpointClose = Symbol ( 'kEndpointClose' ) ;
@@ -579,10 +572,6 @@ function addressOrLocalhost(address, type) {
579572 return address || ( type === AF_INET6 ? '::' : '0.0.0.0' ) ;
580573}
581574
582- function lookupOrDefault ( lookup , type ) {
583- return lookup || ( type === AF_INET6 ? lookup6 : lookup4 ) ;
584- }
585-
586575function deferredClosePromise ( state ) {
587576 return state . closePromise = new Promise ( ( resolve , reject ) => {
588577 state . closePromiseResolve = resolve ;
@@ -594,7 +583,7 @@ function deferredClosePromise(state) {
594583 } ) ;
595584}
596585
597- async function resolvePreferredAddress ( state , preferredAddress ) {
586+ async function resolvePreferredAddress ( lookup , preferredAddress ) {
598587 if ( preferredAddress === undefined )
599588 return { } ;
600589 const {
@@ -603,7 +592,9 @@ async function resolvePreferredAddress(state, preferredAddress) {
603592 type = 'udp4'
604593 } = { ...preferredAddress } ;
605594 const [ typeVal ] = getSocketType ( type ) ;
606- const { address : ip } = await lookup ( address , typeVal === AF_INET6 ? 6 : 4 ) ;
595+ const {
596+ address : ip
597+ } = await lookup ( address , typeVal === AF_INET6 ? 6 : 4 ) ;
607598 return { ip, port, type } ;
608599}
609600
@@ -641,7 +632,7 @@ class QuicEndpoint {
641632 const state = this [ kInternalState ] ;
642633 state . socket = socket ;
643634 state . address = addressOrLocalhost ( address , type ) ;
644- state . lookup = lookupOrDefault ( lookup , type ) ;
635+ state . lookup = lookup ;
645636 state . ipv6Only = ipv6Only ;
646637 state . port = port ;
647638 state . reuseAddr = reuseAddr ;
@@ -711,11 +702,9 @@ class QuicEndpoint {
711702
712703 state . state = kSocketPending ;
713704
714- // TODO(@jasnell): Use passed in lookup function once everything
715- // has been converted to Promises-based API
716705 const {
717706 address : ip
718- } = await lookup ( state . address , state . type === AF_INET6 ? 6 : 4 ) ;
707+ } = await state . lookup ( state . address , state . type === AF_INET6 ? 6 : 4 ) ;
719708
720709 // It's possible for the QuicEndpoint to have been destroyed while
721710 // we were waiting for the DNS lookup to complete. If so, reject
@@ -977,9 +966,6 @@ class QuicSocket extends EventEmitter {
977966 // Default configuration for QuicServerSessions
978967 server,
979968
980- // UDP type
981- type,
982-
983969 // True if address verification should be used.
984970 validateAddress,
985971
@@ -1001,7 +987,7 @@ class QuicSocket extends EventEmitter {
1001987
1002988 state . client = client ;
1003989 state . server = server ;
1004- state . lookup = lookupOrDefault ( lookup , type ) ;
990+ state . lookup = lookup ;
1005991
1006992 let socketOptions = 0 ;
1007993 if ( validateAddress )
@@ -1020,14 +1006,7 @@ class QuicSocket extends EventEmitter {
10201006 statelessResetSecret ,
10211007 disableStatelessReset ) ) ;
10221008
1023- this . addEndpoint ( {
1024- lookup : state . lookup ,
1025- // Keep the lookup and ...endpoint in this order
1026- // to allow the passed in endpoint options to
1027- // override the lookup specifically for that endpoint
1028- ...endpoint ,
1029- preferred : true
1030- } ) ;
1009+ this . addEndpoint ( { ...endpoint , preferred : true } ) ;
10311010 }
10321011
10331012 [ kRejections ] ( err , eventname , ...args ) {
@@ -1205,28 +1184,16 @@ class QuicSocket extends EventEmitter {
12051184 if ( state . state !== kSocketUnbound )
12061185 throw new ERR_INVALID_STATE ( 'QuicSocket is already being bound' ) ;
12071186
1187+ options = {
1188+ lookup : state . lookup ,
1189+ ...options
1190+ } ;
1191+
12081192 const endpoint = new QuicEndpoint ( this , options ) ;
12091193 state . endpoints . add ( endpoint ) ;
12101194 return endpoint ;
12111195 }
12121196
1213- // Used only from within the [kContinueListen] function. When a preferred
1214- // address has been provided, the hostname given must be resolved into an
1215- // IP address, which must be passed on to #completeListen or the QuicSocket
1216- // needs to be destroyed.
1217- static [ kAfterPreferredAddressLookup ] (
1218- transportParams ,
1219- port ,
1220- type ,
1221- err ,
1222- address ) {
1223- if ( err ) {
1224- this . destroy ( err ) ;
1225- return ;
1226- }
1227- this [ kCompleteListen ] ( transportParams , { address, port, type } ) ;
1228- }
1229-
12301197 listen ( options ) {
12311198 const state = this [ kInternalState ] ;
12321199 if ( state . listenPromise !== undefined )
@@ -1254,6 +1221,7 @@ class QuicSocket extends EventEmitter {
12541221 // The ALPN protocol identifier is strictly required.
12551222 const {
12561223 alpn,
1224+ lookup = state . lookup ,
12571225 defaultEncoding,
12581226 highWaterMark,
12591227 transportParams,
@@ -1285,7 +1253,7 @@ class QuicSocket extends EventEmitter {
12851253 ip,
12861254 port,
12871255 type
1288- } = await resolvePreferredAddress ( state , transportParams . preferredAddress ) ;
1256+ } = await resolvePreferredAddress ( lookup , transportParams . preferredAddress ) ;
12891257
12901258 // It's possible that the QuicSocket was destroyed or closed while
12911259 // the preferred address resolution was pending. Check for that and handle
@@ -1348,6 +1316,7 @@ class QuicSocket extends EventEmitter {
13481316 const {
13491317 type,
13501318 address,
1319+ lookup = state . lookup
13511320 } = validateQuicSocketConnectOptions ( options ) ;
13521321
13531322 await this [ kMaybeBind ] ( ) ;
0 commit comments