Skip to content

Commit c9acca9

Browse files
st3ffgv4stefanoaga
andauthored
fix(H2 Client): bind stream 'data' listener only after received 'response' event (#2985)
* fix(fetch): pause stream if data is received before headers in HTTP/2 * Revert "fix(fetch): pause stream if data is received before headers in HTTP/2" This reverts commit cd2eaf4. * fix(H2 Client): pause stream if response data is sent before response event * Revert "fix(H2 Client): pause stream if response data is sent before response event" This reverts commit 9219ee3. * fix(H2 Client): bind stream 'data' listener once 'response' is triggered ref: https://nodejs.org/api/http2.html#clienthttp2sessionrequestheaders-options --------- Co-authored-by: Stefano <[email protected]>
1 parent 0ec5a40 commit c9acca9

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

lib/dispatcher/client-h2.js

+6-6
Original file line numberDiff line numberDiff line change
@@ -394,6 +394,12 @@ function writeH2 (client, request) {
394394
if (request.onHeaders(Number(statusCode), realHeaders, stream.resume.bind(stream), '') === false) {
395395
stream.pause()
396396
}
397+
398+
stream.on('data', (chunk) => {
399+
if (request.onData(chunk) === false) {
400+
stream.pause()
401+
}
402+
})
397403
})
398404

399405
stream.once('end', () => {
@@ -418,12 +424,6 @@ function writeH2 (client, request) {
418424
util.destroy(stream, err)
419425
})
420426

421-
stream.on('data', (chunk) => {
422-
if (request.onData(chunk) === false) {
423-
stream.pause()
424-
}
425-
})
426-
427427
stream.once('close', () => {
428428
session[kOpenStreams] -= 1
429429
// TODO(HTTP/2): unref only if current streams count is 0

0 commit comments

Comments
 (0)