Skip to content

Commit 651c02c

Browse files
authored
http: null the joinDuplicateHeaders property on cleanup
Null the `joinDuplicateHeaders` property when the parser is freed. Refs: #45982 PR-URL: #48608 Reviewed-By: Marco Ippolito <[email protected]> Reviewed-By: Matteo Collina <[email protected]> Reviewed-By: Benjamin Gruenbaum <[email protected]> Reviewed-By: Matthew Aitken <[email protected]>
1 parent acf071e commit 651c02c

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

lib/_http_common.js

+1
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,7 @@ function cleanParser(parser) {
236236
parser[kOnTimeout] = null;
237237
parser._consumed = false;
238238
parser.onIncoming = null;
239+
parser.joinDuplicateHeaders = null;
239240
}
240241

241242
function prepareError(err, parser, rawPacket) {

test/parallel/test-http-parser-memory-retention.js

+7-1
Original file line numberDiff line numberDiff line change
@@ -25,18 +25,24 @@ server.on('request', common.mustCall((request, response) => {
2525
}));
2626

2727
server.listen(common.mustCall(() => {
28-
const request = http.get({ port: server.address().port });
28+
const request = http.get({
29+
headers: { Connection: 'close' },
30+
port: server.address().port,
31+
joinDuplicateHeaders: true
32+
});
2933
let parser;
3034

3135
request.on('socket', common.mustCall(() => {
3236
parser = request.parser;
3337
assert.strictEqual(typeof parser.onIncoming, 'function');
38+
assert.strictEqual(parser.joinDuplicateHeaders, true);
3439
}));
3540

3641
request.on('response', common.mustCall((response) => {
3742
response.resume();
3843
response.on('end', common.mustCall(() => {
3944
assert.strictEqual(parser.onIncoming, null);
45+
assert.strictEqual(parser.joinDuplicateHeaders, null);
4046
}));
4147
}));
4248
}));

0 commit comments

Comments
 (0)