summaryrefslogtreecommitdiff
path: root/lib/_http_server.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/_http_server.js')
-rw-r--r--lib/_http_server.js16
1 files changed, 14 insertions, 2 deletions
diff --git a/lib/_http_server.js b/lib/_http_server.js
index ff29b9d2b6..9f62872e8e 100644
--- a/lib/_http_server.js
+++ b/lib/_http_server.js
@@ -126,6 +126,12 @@ const STATUS_CODES = {
const kOnExecute = HTTPParser.kOnExecute | 0;
+class HTTPServerAsyncResource {
+ constructor(type, socket) {
+ this.type = type;
+ this.socket = socket;
+ }
+}
function ServerResponse(req) {
OutgoingMessage.call(this);
@@ -349,9 +355,15 @@ function connectionListenerInternal(server, socket) {
socket.setTimeout(server.timeout);
socket.on('timeout', socketOnTimeout);
- const isParserReused = parsers.hasItems();
const parser = parsers.alloc();
- parser.reinitialize(HTTPParser.REQUEST, isParserReused);
+
+ // TODO(addaleax): This doesn't play well with the
+ // `async_hooks.currentResource()` proposal, see
+ // https://github.com/nodejs/node/pull/21313
+ parser.initialize(
+ HTTPParser.REQUEST,
+ new HTTPServerAsyncResource('HTTPINCOMINGMESSAGE', socket)
+ );
parser.socket = socket;
// We are starting to wait for our headers.