http: headers(Distinct), trailers(Distinct) setters to be no-op

PR-URL: https://github.com/nodejs/node/pull/45176
Reviewed-By: Paolo Insogna <paolo@cowtech.it>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
This commit is contained in:
Madhuri 2022-11-01 00:14:05 +05:30 committed by GitHub
parent 548f505c3c
commit 4d723c7fd6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 63 additions and 18 deletions

View File

@ -122,9 +122,7 @@ ObjectDefineProperty(IncomingMessage.prototype, 'headers', {
}
return this[kHeaders];
},
set: function(val) {
this[kHeaders] = val;
}
set: function(val) {}
});
ObjectDefineProperty(IncomingMessage.prototype, 'headersDistinct', {
@ -142,9 +140,7 @@ ObjectDefineProperty(IncomingMessage.prototype, 'headersDistinct', {
}
return this[kHeadersDistinct];
},
set: function(val) {
this[kHeadersDistinct] = val;
}
set: function(val) {}
});
ObjectDefineProperty(IncomingMessage.prototype, 'trailers', {
@ -162,9 +158,7 @@ ObjectDefineProperty(IncomingMessage.prototype, 'trailers', {
}
return this[kTrailers];
},
set: function(val) {
this[kTrailers] = val;
}
set: function(val) {}
});
ObjectDefineProperty(IncomingMessage.prototype, 'trailersDistinct', {
@ -182,9 +176,7 @@ ObjectDefineProperty(IncomingMessage.prototype, 'trailersDistinct', {
}
return this[kTrailersDistinct];
},
set: function(val) {
this[kTrailersDistinct] = val;
}
set: function(val) {}
});
IncomingMessage.prototype.setTimeout = function setTimeout(msecs, callback) {

View File

@ -0,0 +1,54 @@
'use strict';
const common = require('../common');
const assert = require('assert');
const { createServer, request } = require('http');
const server = createServer(
common.mustCall((req, res) => {
req.headersDistinct = { 'x-req-a': ['zzz'] };
// headersDistinct setter should be a No-Op
assert.deepStrictEqual(req.headersDistinct, {
'transfer-encoding': [
'chunked',
],
'connection': [
'keep-alive',
],
'host': [
`127.0.0.1:${server.address().port}`,
]
});
req.on('end', function() {
res.write('BODY');
res.end();
});
req.resume();
})
);
server.listen(
0,
common.mustCall(() => {
const req = request(
{
host: '127.0.0.1',
port: server.address().port,
path: '/',
method: 'POST',
},
common.mustCall((res) => {
res.on('end', function() {
server.close();
});
res.resume();
})
);
req.write('BODY');
req.end();
})
);

View File

@ -4,24 +4,23 @@ require('../common');
const { IncomingMessage } = require('http');
const assert = require('assert');
// Headers setter function set a header correctly
// Headers setter should be a No-Op
{
const im = new IncomingMessage();
im.headers = { key: 'value' };
assert.deepStrictEqual(im.headers, { key: 'value' });
assert.deepStrictEqual(im.headers, {});
}
// Trailers setter function set a header correctly
// Trailers setter should be a No-Op
{
const im = new IncomingMessage();
im.trailers = { key: 'value' };
assert.deepStrictEqual(im.trailers, { key: 'value' });
assert.deepStrictEqual(im.trailers, {});
}
// _addHeaderLines function set a header correctly
{
const im = new IncomingMessage();
im.headers = { key1: 'value1' };
im._addHeaderLines(['key2', 'value2'], 2);
assert.deepStrictEqual(im.headers, { key1: 'value1', key2: 'value2' });
assert.deepStrictEqual(im.headers, { key2: 'value2' });
}