@@ -72,6 +72,7 @@ const {
7272 IDX_STATE_SESSION_STREAM_OPEN_ALLOWED ,
7373 IDX_STATE_SESSION_PRIORITY_SUPPORTED ,
7474 IDX_STATE_SESSION_HEADERS_SUPPORTED ,
75+ IDX_STATE_SESSION_STREAM_CALLBACKS_SUPPORTED ,
7576 IDX_STATE_SESSION_WRAPPED ,
7677 IDX_STATE_SESSION_APPLICATION_TYPE ,
7778 IDX_STATE_SESSION_NO_ERROR_CODE ,
@@ -119,6 +120,7 @@ assert(IDX_STATE_SESSION_HANDSHAKE_CONFIRMED !== undefined);
119120assert ( IDX_STATE_SESSION_STREAM_OPEN_ALLOWED !== undefined ) ;
120121assert ( IDX_STATE_SESSION_PRIORITY_SUPPORTED !== undefined ) ;
121122assert ( IDX_STATE_SESSION_HEADERS_SUPPORTED !== undefined ) ;
123+ assert ( IDX_STATE_SESSION_STREAM_CALLBACKS_SUPPORTED !== undefined ) ;
122124assert ( IDX_STATE_SESSION_WRAPPED !== undefined ) ;
123125assert ( IDX_STATE_SESSION_APPLICATION_TYPE !== undefined ) ;
124126assert ( IDX_STATE_SESSION_NO_ERROR_CODE !== undefined ) ;
@@ -493,6 +495,19 @@ class QuicSessionState {
493495 return DataViewPrototypeGetUint8 ( handle , this . #offset + IDX_STATE_SESSION_HEADERS_SUPPORTED ) ;
494496 }
495497
498+ /**
499+ * Whether the negotiated application dispatches the session-level
500+ * stream callbacks (onheaders et al) for incoming streams.
501+ * Returns 0 (unknown), 1 (supported), or 2 (not supported).
502+ * @type {number }
503+ */
504+ get streamCallbacksSupported ( ) {
505+ const handle = this . #handle;
506+ if ( handle === undefined ) return undefined ;
507+ return DataViewPrototypeGetUint8 (
508+ handle , this . #offset + IDX_STATE_SESSION_STREAM_CALLBACKS_SUPPORTED ) ;
509+ }
510+
496511 /** @type {boolean } */
497512 get isWrapped ( ) {
498513 const handle = this . #handle;
0 commit comments