diff options
Diffstat (limited to 'lib/_http_server.js')
-rw-r--r-- | lib/_http_server.js | 16 |
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. |