File tree Expand file tree Collapse file tree 2 files changed +48
-1
lines changed Expand file tree Collapse file tree 2 files changed +48
-1
lines changed Original file line number Diff line number Diff line change @@ -92,7 +92,8 @@ Http2Scope::~Http2Scope() {
9292 return ;
9393
9494 session_->flags_ &= ~SESSION_STATE_HAS_SCOPE;
95- session_->MaybeScheduleWrite ();
95+ if (!(session_->flags_ & SESSION_STATE_WRITE_SCHEDULED))
96+ session_->MaybeScheduleWrite ();
9697}
9798
9899// The Http2Options object is used during the construction of Http2Session
Original file line number Diff line number Diff line change 1+ 'use strict' ;
2+ // https://github.com/nodejs/node/issues/33156
3+ const common = require ( '../common' ) ;
4+ const fixtures = require ( '../common/fixtures' ) ;
5+
6+ if ( ! common . hasCrypto ) {
7+ common . skip ( 'missing crypto' ) ;
8+ }
9+
10+ const http2 = require ( 'http2' ) ;
11+
12+ const key = fixtures . readKey ( 'agent8-key.pem' , 'binary' ) ;
13+ const cert = fixtures . readKey ( 'agent8-cert.pem' , 'binary' ) ;
14+ const ca = fixtures . readKey ( 'fake-startcom-root-cert.pem' , 'binary' ) ;
15+
16+ const server = http2 . createSecureServer ( {
17+ key,
18+ cert,
19+ maxSessionMemory : 1000
20+ } ) ;
21+
22+ let client_stream ;
23+
24+ server . on ( 'session' , common . mustCall ( function ( session ) {
25+ session . on ( 'stream' , common . mustCall ( function ( stream ) {
26+ stream . resume ( ) ;
27+ stream . on ( 'data' , function ( ) {
28+ this . write ( Buffer . alloc ( 1 ) ) ;
29+ process . nextTick ( ( ) => client_stream . destroy ( ) ) ;
30+ } ) ;
31+ } ) ) ;
32+ } ) ) ;
33+
34+ server . listen ( 0 , function ( ) {
35+ const client = http2 . connect ( `https://localhost:${ server . address ( ) . port } ` , {
36+ ca,
37+ maxSessionMemory : 1000
38+ } ) ;
39+ client_stream = client . request ( { ':method' : 'POST' } ) ;
40+ client_stream . on ( 'close' , common . mustCall ( ( ) => {
41+ client . close ( ) ;
42+ server . close ( ) ;
43+ } ) ) ;
44+ client_stream . resume ( ) ;
45+ client_stream . write ( Buffer . alloc ( 64 * 1024 ) ) ;
46+ } ) ;
You can’t perform that action at this time.
0 commit comments