From 008e5a8929ad53452f29ef2847adad1315a38704 Mon Sep 17 00:00:00 2001 From: XadillaX Date: Mon, 18 Dec 2017 13:55:52 +0800 Subject: [PATCH] update --- doc/api/http.md | 2 +- lib/_http_server.js | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/doc/api/http.md b/doc/api/http.md index b6afcd581f84f6..9b09093b4c2b7d 100644 --- a/doc/api/http.md +++ b/doc/api/http.md @@ -734,7 +734,7 @@ changes: description: The default action of calling `.destroy()` on the `socket` will no longer take place if there are listeners attached for `clientError`. - - version: VERSION + - version: REPLACEME pr-url: https://github.com/nodejs/node/pull/17672 description: The rawPacket is the current buffer that just parsed. Adding this buffer to the error object of clientError event is to make diff --git a/lib/_http_server.js b/lib/_http_server.js index 2840cd65e3b71c..cb1c7bad464deb 100644 --- a/lib/_http_server.js +++ b/lib/_http_server.js @@ -475,12 +475,8 @@ function socketOnError(e) { function onParserExecuteCommon(server, socket, parser, state, ret, d) { resetSocketTimeout(server, socket, state); - if (!d) { - d = parser.getCurrentBuffer(); - } - if (ret instanceof Error) { - ret.rawPacket = d; + ret.rawPacket = d || parser.getCurrentBuffer(); debug('parse error', ret); socketOnError.call(socket, ret); } else if (parser.incoming && parser.incoming.upgrade) { @@ -489,6 +485,9 @@ function onParserExecuteCommon(server, socket, parser, state, ret, d) { var req = parser.incoming; debug('SERVER upgrade or connect', req.method); + if (!d) + d = parser.getCurrentBuffer(); + socket.removeListener('data', state.onData); socket.removeListener('end', state.onEnd); socket.removeListener('close', state.onClose);