Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
http2: emit response event instead of trailers event
  • Loading branch information
MoonBall committed Jan 5, 2022
commit 38c46b1042f3a0366b607dcf54329369f543f346
2 changes: 1 addition & 1 deletion lib/internal/http2/core.js
Original file line number Diff line number Diff line change
Expand Up @@ -395,7 +395,7 @@ function onSessionHeaders(handle, id, cat, flags, headers, sensitiveHeaders) {
} else if (cat === NGHTTP2_HCAT_PUSH_RESPONSE) {
event = 'push';
// cat === NGHTTP2_HCAT_HEADERS:
} else if (!endOfStream && status !== undefined && status >= 200) {
} else if (status >= 200) {
event = 'response';
} else {
event = endOfStream ? 'trailers' : 'headers';
Expand Down
39 changes: 39 additions & 0 deletions test/parallel/test-http2-info-headers-and-end.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
'use strict';

const common = require('../common');
if (!common.hasCrypto)
common.skip('missing crypto');
const http2 = require('http2');
const assert = require('assert');

const server = http2.createServer((request, response) => {
response.writeContinue();
response.end();
});

server.listen(0, common.mustCall(() => {
const client = http2.connect(`http://localhost:${server.address().port}`);

{
const req = client.request({ ':path': '/' });

req.on('headers', common.mustCall((headers) => {
assert.notStrictEqual(headers, undefined);
assert.strictEqual(headers[':status'], 100);
}));

req.on('response', common.mustCall((headers) => {
assert.notStrictEqual(headers, undefined);
assert.strictEqual(headers[':status'], 200);
}));

req.on('trailers', common.mustNotCall());

req.resume();
req.on('end', () => {
client.close();
server.close();
});
req.end();
}
}));