mirror of
https://github.com/nodejs/node.git
synced 2025-05-03 18:37:06 +00: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. Fix: #24585 PR-URL: https://github.com/nodejs/node/pull/24738 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
28 lines
725 B
JavaScript
28 lines
725 B
JavaScript
'use strict';
|
|
|
|
const common = require('../common');
|
|
const net = require('net');
|
|
const http = require('http');
|
|
const assert = require('assert');
|
|
|
|
const str = 'GET / HTTP/1.1\r\n' +
|
|
'Content-Length:';
|
|
|
|
|
|
const server = http.createServer(common.mustNotCall());
|
|
server.on('clientError', common.mustCall((err, socket) => {
|
|
assert(/^Parse Error/.test(err.message));
|
|
assert.strictEqual(err.code, 'HPE_INVALID_EOF_STATE');
|
|
socket.destroy();
|
|
}, 1));
|
|
server.listen(0, () => {
|
|
const client = net.connect({ port: server.address().port }, () => {
|
|
client.on('data', common.mustNotCall());
|
|
client.on('end', common.mustCall(() => {
|
|
server.close();
|
|
}));
|
|
client.write(str);
|
|
client.end();
|
|
});
|
|
});
|