http: add rawPacket in err of clientError event

The `rawPacket` is the current buffer that just parsed. Adding this
buffer to the error object of `clientError` event is to make it possible
that developers can log the broken packet.

PR-URL: https://github.com/nodejs/node/pull/17672
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
XadillaX 2017-12-14 12:40:32 +08:00 committed by Anna Henningsen
parent b0dd43cd63
commit 6c0da34905
No known key found for this signature in database
GPG key ID: 9C63F3A6CD2AD8F9
3 changed files with 18 additions and 0 deletions

View file

@ -10,6 +10,12 @@ const server = http.createServer(common.mustCall(function(req, res) {
}));
server.on('clientError', common.mustCall(function(err, socket) {
assert.strictEqual(err instanceof Error, true);
assert.strictEqual(err.code, 'HPE_INVALID_METHOD');
assert.strictEqual(err.bytesParsed, 1);
assert.strictEqual(err.message, 'Parse Error');
assert.strictEqual(err.rawPacket.toString(), 'Oopsie-doopsie\r\n');
socket.end('HTTP/1.1 400 Bad Request\r\n\r\n');
server.close();