@@ -101,7 +101,10 @@ const {
101
101
ERR_INVALID_CALLBACK ,
102
102
ERR_INVALID_STATE ,
103
103
ERR_OPERATION_FAILED ,
104
- ERR_QUICSESSION_VERSION_NEGOTIATION ,
104
+ ERR_QUIC_FAILED_TO_CREATE_SESSION ,
105
+ ERR_QUIC_INVALID_REMOTE_TRANSPORT_PARAMS ,
106
+ ERR_QUIC_INVALID_TLS_SESSION_TICKET ,
107
+ ERR_QUIC_VERSION_NEGOTIATION ,
105
108
ERR_TLS_DH_PARAM_SIZE ,
106
109
} ,
107
110
hideStackFrames,
@@ -1753,7 +1756,7 @@ class QuicSession extends EventEmitter {
1753
1756
// QuicSessions.
1754
1757
[ kVersionNegotiation ] ( version , requestedVersions , supportedVersions ) {
1755
1758
const err =
1756
- new ERR_QUICSESSION_VERSION_NEGOTIATION (
1759
+ new ERR_QUIC_VERSION_NEGOTIATION (
1757
1760
version ,
1758
1761
requestedVersions ,
1759
1762
supportedVersions ) ;
@@ -2347,19 +2350,9 @@ class QuicServerSession extends QuicSession {
2347
2350
class QuicClientSession extends QuicSession {
2348
2351
[ kInternalClientState ] = {
2349
2352
allowEarlyData : false ,
2350
- autoStart : true ,
2351
- dcid : undefined ,
2352
2353
handshakeStarted : false ,
2353
2354
minDHSize : undefined ,
2354
- port : undefined ,
2355
- remoteTransportParams : undefined ,
2356
- requestOCSP : undefined ,
2357
2355
secureContext : undefined ,
2358
- sessionTicket : undefined ,
2359
- transportParams : undefined ,
2360
- preferredAddressPolicy : undefined ,
2361
- verifyHostnameIdentity : true ,
2362
- qlogEnabled : false ,
2363
2356
} ;
2364
2357
2365
2358
constructor ( socket , options , type , ip ) {
@@ -2396,74 +2389,55 @@ class QuicClientSession extends QuicSession {
2396
2389
2397
2390
super ( socket , { servername, alpn, highWaterMark, defaultEncoding } ) ;
2398
2391
const state = this [ kInternalClientState ] ;
2399
- state . autoStart = autoStart ;
2400
2392
state . handshakeStarted = autoStart ;
2401
- state . dcid = dcid ;
2402
2393
state . minDHSize = minDHSize ;
2403
- state . port = port || 0 ;
2404
- state . preferredAddressPolicy = preferredAddressPolicy ;
2405
- state . requestOCSP = requestOCSP ;
2394
+
2406
2395
state . secureContext =
2407
2396
createSecureContext (
2408
2397
sc_options ,
2409
2398
initSecureContextClient ) ;
2410
- state . transportParams = validateTransportParams ( options ) ;
2411
- state . verifyHostnameIdentity = verifyHostnameIdentity ;
2412
- state . qlogEnabled = qlog ;
2413
-
2414
- // If provided, indicates that the client is attempting to
2415
- // resume a prior session. Early data would be enabled.
2416
- state . remoteTransportParams = remoteTransportParams ;
2417
- state . sessionTicket = sessionTicket ;
2399
+
2400
+ const transportParams = validateTransportParams ( options ) ;
2401
+
2418
2402
state . allowEarlyData =
2419
2403
remoteTransportParams !== undefined &&
2420
2404
sessionTicket !== undefined ;
2421
2405
2422
- setTransportParams ( state . transportParams ) ;
2406
+ setTransportParams ( transportParams ) ;
2423
2407
2424
2408
const handle =
2425
2409
_createClientSession (
2426
2410
this . socket [ kHandle ] ,
2427
2411
type ,
2428
2412
ip ,
2429
- state . port ,
2413
+ port ,
2430
2414
state . secureContext . context ,
2431
2415
this . servername || ip ,
2432
- state . remoteTransportParams ,
2433
- state . sessionTicket ,
2434
- state . dcid ,
2435
- state . preferredAddressPolicy ,
2416
+ remoteTransportParams ,
2417
+ sessionTicket ,
2418
+ dcid ,
2419
+ preferredAddressPolicy ,
2436
2420
this . alpnProtocol ,
2437
- ( state . verifyHostnameIdentity ?
2421
+ ( verifyHostnameIdentity ?
2438
2422
QUICCLIENTSESSION_OPTION_VERIFY_HOSTNAME_IDENTITY : 0 ) |
2439
- ( state . requestOCSP ?
2423
+ ( requestOCSP ?
2440
2424
QUICCLIENTSESSION_OPTION_REQUEST_OCSP : 0 ) ,
2441
- state . qlogEnabled ,
2442
- state . autoStart ) ;
2443
-
2444
- // We no longer need these, unset them so
2445
- // memory can be garbage collected.
2446
- state . remoteTransportParams = undefined ;
2447
- state . sessionTicket = undefined ;
2448
- state . dcid = undefined ;
2425
+ qlog ,
2426
+ autoStart ) ;
2449
2427
2450
2428
// If handle is a number, creating the session failed.
2451
2429
if ( typeof handle === 'number' ) {
2452
2430
let reason ;
2453
2431
switch ( handle ) {
2454
2432
case ERR_FAILED_TO_CREATE_SESSION :
2455
- reason = 'QuicSession bootstrap failed' ;
2456
- break ;
2433
+ throw new ERR_QUIC_FAILED_TO_CREATE_SESSION ( ) ;
2457
2434
case ERR_INVALID_REMOTE_TRANSPORT_PARAMS :
2458
- reason = 'Invalid Remote Transport Params' ;
2459
- break ;
2435
+ throw new ERR_QUIC_INVALID_REMOTE_TRANSPORT_PARAMS ( ) ;
2460
2436
case ERR_INVALID_TLS_SESSION_TICKET :
2461
- reason = 'Invalid TLS Session Ticket' ;
2462
- break ;
2437
+ throw new ERR_QUIC_INVALID_TLS_SESSION_TICKET ( ) ;
2463
2438
default :
2464
- reason = ` ${ handle } ` ;
2439
+ throw new ERR_OPERATION_FAILED ( `Unspecified reason [ ${ reason } ]` ) ;
2465
2440
}
2466
- throw new ERR_OPERATION_FAILED ( reason ) ;
2467
2441
}
2468
2442
2469
2443
this [ kSetHandle ] ( handle ) ;
0 commit comments