@@ -1228,12 +1228,6 @@ class Http2Session extends EventEmitter {
1228
1228
constructor ( type , options , socket ) {
1229
1229
super ( ) ;
1230
1230
1231
- if ( ! socket . _handle || ! socket . _handle . isStreamBase ) {
1232
- socket = new JSStreamSocket ( socket ) ;
1233
- }
1234
- socket . on ( 'error' , socketOnError ) ;
1235
- socket . on ( 'close' , socketOnClose ) ;
1236
-
1237
1231
// No validation is performed on the input parameters because this
1238
1232
// constructor is not exported directly for users.
1239
1233
@@ -1245,6 +1239,12 @@ class Http2Session extends EventEmitter {
1245
1239
1246
1240
socket [ kSession ] = this ;
1247
1241
1242
+ if ( ! socket . _handle || ! socket . _handle . isStreamBase ) {
1243
+ socket = new JSStreamSocket ( socket ) ;
1244
+ }
1245
+ socket . on ( 'error' , socketOnError ) ;
1246
+ socket . on ( 'close' , socketOnClose ) ;
1247
+
1248
1248
this [ kState ] = {
1249
1249
destroyCode : NGHTTP2_NO_ERROR ,
1250
1250
flags : SESSION_FLAGS_PENDING ,
@@ -1644,7 +1644,7 @@ class ServerHttp2Session extends Http2Session {
1644
1644
// not be an issue in practice. Additionally, the 'priority' event on
1645
1645
// server instances (or any other object) is fully undocumented.
1646
1646
this [ kNativeFields ] [ kSessionPriorityListenerCount ] =
1647
- server . listenerCount ( 'priority' ) ;
1647
+ server ? server . listenerCount ( 'priority' ) : 0 ;
1648
1648
}
1649
1649
1650
1650
get server ( ) {
@@ -3435,6 +3435,11 @@ function getUnpackedSettings(buf, options = kEmptyObject) {
3435
3435
return settings ;
3436
3436
}
3437
3437
3438
+ function performServerHandshake ( socket , options = { } ) {
3439
+ options = initializeOptions ( options ) ;
3440
+ return new ServerHttp2Session ( options , socket , undefined ) ;
3441
+ }
3442
+
3438
3443
binding . setCallbackFunctions (
3439
3444
onSessionInternalError ,
3440
3445
onPriority ,
@@ -3458,6 +3463,7 @@ module.exports = {
3458
3463
getDefaultSettings,
3459
3464
getPackedSettings,
3460
3465
getUnpackedSettings,
3466
+ performServerHandshake,
3461
3467
sensitiveHeaders : kSensitiveHeaders ,
3462
3468
Http2Session,
3463
3469
Http2Stream,
0 commit comments