@@ -29,8 +29,6 @@ const {
29
29
customInspect,
30
30
getAllowUnauthorized,
31
31
getSocketType,
32
- lookup4,
33
- lookup6,
34
32
setTransportParams,
35
33
toggleListeners,
36
34
validateNumber,
@@ -202,17 +200,12 @@ const {
202
200
203
201
const emit = EventEmitter . prototype . emit ;
204
202
205
- // TODO(@jasnell): Temporary while converting to Promises-based API
206
- const { lookup } = require ( 'dns' ) . promises ;
207
-
208
- const kAfterPreferredAddressLookup = Symbol ( 'kAfterPreferredAddressLookup' ) ;
209
203
const kAddSession = Symbol ( 'kAddSession' ) ;
210
204
const kAddStream = Symbol ( 'kAddStream' ) ;
211
205
const kBind = Symbol ( 'kBind' ) ;
212
206
const kClose = Symbol ( 'kClose' ) ;
213
207
const kCert = Symbol ( 'kCert' ) ;
214
208
const kClientHello = Symbol ( 'kClientHello' ) ;
215
- const kCompleteListen = Symbol ( 'kCompleteListen' ) ;
216
209
const kDestroy = Symbol ( 'kDestroy' ) ;
217
210
const kEndpointBound = Symbol ( 'kEndpointBound' ) ;
218
211
const kEndpointClose = Symbol ( 'kEndpointClose' ) ;
@@ -579,10 +572,6 @@ function addressOrLocalhost(address, type) {
579
572
return address || ( type === AF_INET6 ? '::' : '0.0.0.0' ) ;
580
573
}
581
574
582
- function lookupOrDefault ( lookup , type ) {
583
- return lookup || ( type === AF_INET6 ? lookup6 : lookup4 ) ;
584
- }
585
-
586
575
function deferredClosePromise ( state ) {
587
576
return state . closePromise = new Promise ( ( resolve , reject ) => {
588
577
state . closePromiseResolve = resolve ;
@@ -594,7 +583,7 @@ function deferredClosePromise(state) {
594
583
} ) ;
595
584
}
596
585
597
- async function resolvePreferredAddress ( state , preferredAddress ) {
586
+ async function resolvePreferredAddress ( lookup , preferredAddress ) {
598
587
if ( preferredAddress === undefined )
599
588
return { } ;
600
589
const {
@@ -603,7 +592,9 @@ async function resolvePreferredAddress(state, preferredAddress) {
603
592
type = 'udp4'
604
593
} = { ...preferredAddress } ;
605
594
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 ) ;
607
598
return { ip, port, type } ;
608
599
}
609
600
@@ -641,7 +632,7 @@ class QuicEndpoint {
641
632
const state = this [ kInternalState ] ;
642
633
state . socket = socket ;
643
634
state . address = addressOrLocalhost ( address , type ) ;
644
- state . lookup = lookupOrDefault ( lookup , type ) ;
635
+ state . lookup = lookup ;
645
636
state . ipv6Only = ipv6Only ;
646
637
state . port = port ;
647
638
state . reuseAddr = reuseAddr ;
@@ -711,11 +702,9 @@ class QuicEndpoint {
711
702
712
703
state . state = kSocketPending ;
713
704
714
- // TODO(@jasnell): Use passed in lookup function once everything
715
- // has been converted to Promises-based API
716
705
const {
717
706
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 ) ;
719
708
720
709
// It's possible for the QuicEndpoint to have been destroyed while
721
710
// we were waiting for the DNS lookup to complete. If so, reject
@@ -977,9 +966,6 @@ class QuicSocket extends EventEmitter {
977
966
// Default configuration for QuicServerSessions
978
967
server,
979
968
980
- // UDP type
981
- type,
982
-
983
969
// True if address verification should be used.
984
970
validateAddress,
985
971
@@ -1001,7 +987,7 @@ class QuicSocket extends EventEmitter {
1001
987
1002
988
state . client = client ;
1003
989
state . server = server ;
1004
- state . lookup = lookupOrDefault ( lookup , type ) ;
990
+ state . lookup = lookup ;
1005
991
1006
992
let socketOptions = 0 ;
1007
993
if ( validateAddress )
@@ -1020,14 +1006,7 @@ class QuicSocket extends EventEmitter {
1020
1006
statelessResetSecret ,
1021
1007
disableStatelessReset ) ) ;
1022
1008
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 } ) ;
1031
1010
}
1032
1011
1033
1012
[ kRejections ] ( err , eventname , ...args ) {
@@ -1205,28 +1184,16 @@ class QuicSocket extends EventEmitter {
1205
1184
if ( state . state !== kSocketUnbound )
1206
1185
throw new ERR_INVALID_STATE ( 'QuicSocket is already being bound' ) ;
1207
1186
1187
+ options = {
1188
+ lookup : state . lookup ,
1189
+ ...options
1190
+ } ;
1191
+
1208
1192
const endpoint = new QuicEndpoint ( this , options ) ;
1209
1193
state . endpoints . add ( endpoint ) ;
1210
1194
return endpoint ;
1211
1195
}
1212
1196
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
-
1230
1197
listen ( options ) {
1231
1198
const state = this [ kInternalState ] ;
1232
1199
if ( state . listenPromise !== undefined )
@@ -1254,6 +1221,7 @@ class QuicSocket extends EventEmitter {
1254
1221
// The ALPN protocol identifier is strictly required.
1255
1222
const {
1256
1223
alpn,
1224
+ lookup = state . lookup ,
1257
1225
defaultEncoding,
1258
1226
highWaterMark,
1259
1227
transportParams,
@@ -1285,7 +1253,7 @@ class QuicSocket extends EventEmitter {
1285
1253
ip,
1286
1254
port,
1287
1255
type
1288
- } = await resolvePreferredAddress ( state , transportParams . preferredAddress ) ;
1256
+ } = await resolvePreferredAddress ( lookup , transportParams . preferredAddress ) ;
1289
1257
1290
1258
// It's possible that the QuicSocket was destroyed or closed while
1291
1259
// the preferred address resolution was pending. Check for that and handle
@@ -1348,6 +1316,7 @@ class QuicSocket extends EventEmitter {
1348
1316
const {
1349
1317
type,
1350
1318
address,
1319
+ lookup = state . lookup
1351
1320
} = validateQuicSocketConnectOptions ( options ) ;
1352
1321
1353
1322
await this [ kMaybeBind ] ( ) ;
0 commit comments