Skip to content

Commit 9219ee3

Browse files
committed
fix(H2 Client): pause stream if response data is sent before response event
1 parent cf6a5ea commit 9219ee3

1 file changed

Lines changed: 3 additions & 1 deletion

File tree

lib/dispatcher/client-h2.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,7 @@ function writeH2 (client, request) {
253253

254254
/** @type {import('node:http2').ClientHttp2Stream} */
255255
let stream
256+
let isStreamResponseStarted = false
256257

257258
const { hostname, port } = client[kUrl]
258259

@@ -388,6 +389,7 @@ function writeH2 (client, request) {
388389
++session[kOpenStreams]
389390

390391
stream.once('response', headers => {
392+
isStreamResponseStarted = true
391393
const { [HTTP2_HEADER_STATUS]: statusCode, ...realHeaders } = headers
392394
request.onResponseStarted()
393395

@@ -419,7 +421,7 @@ function writeH2 (client, request) {
419421
})
420422

421423
stream.on('data', (chunk) => {
422-
if (request.onData(chunk) === false) {
424+
if (!isStreamResponseStarted || request.onData(chunk) === false) {
423425
stream.pause()
424426
}
425427
})

0 commit comments

Comments
 (0)