mirror of
https://github.com/zebrajr/node.git
synced 2025-12-07 12:20:50 +01:00
`http_parser_execute(..., nullptr, 0)` returns either `0` or `1`. The expectation is that no error must be returned if it is `0`, and if it is `1` - a `Error` object must be returned back to user. The introduction of `llhttp` and the refactor that happened during it accidentally removed the error-returning code. This commit reverts it back to its original state. Backport-PR-URL: https://github.com/nodejs/node/pull/25938 Fix: #24585 PR-URL: #24738 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
25 lines
790 B
JavaScript
25 lines
790 B
JavaScript
'use strict';
|
|
|
|
const common = require('../common');
|
|
const assert = require('assert');
|
|
const { spawnSync } = require('child_process');
|
|
const http = require('http');
|
|
|
|
assert.strictEqual(http.maxHeaderSize, 8 * 1024);
|
|
const child = spawnSync(process.execPath, ['--max-http-header-size=10', '-p',
|
|
'http.maxHeaderSize']);
|
|
assert.strictEqual(+child.stdout.toString().trim(), 10);
|
|
|
|
{
|
|
const server = http.createServer(common.mustNotCall());
|
|
server.listen(0, common.mustCall(() => {
|
|
http.get({
|
|
port: server.address().port,
|
|
headers: { foo: 'x'.repeat(http.maxHeaderSize + 1) }
|
|
}, common.mustNotCall()).once('error', common.mustCall((err) => {
|
|
assert.strictEqual(err.code, 'ECONNRESET');
|
|
server.close();
|
|
}));
|
|
}));
|
|
}
|