diff --git a/lib/_http_server.js b/lib/_http_server.js index 9225ff06117859..07a9984b8d5b2a 100644 --- a/lib/_http_server.js +++ b/lib/_http_server.js @@ -386,11 +386,6 @@ function Server(options, requestListener) { this.on('request', requestListener); } - // Similar option to this. Too lazy to write my own docs. - // http://www.squid-cache.org/Doc/config/half_closed_clients/ - // https://wiki.squid-cache.org/SquidFaq/InnerWorkings#What_is_a_half-closed_filedescriptor.3F - this.httpAllowHalfOpen = false; - this.on('connection', connectionListener); this.timeout = 0; @@ -580,12 +575,7 @@ function socketOnTimeout() { } function socketOnClose(socket, state) { - debug('server socket close'); - // Mark this parser as reusable - if (socket.parser) { - freeParser(socket.parser, null, socket); - } - + freeParser(socket.parser, null, socket); abortIncoming(state.incoming); } @@ -601,19 +591,9 @@ function socketOnEnd(server, socket, parser, state) { const ret = parser.finish(); if (ret instanceof Error) { - debug('parse error'); - FunctionPrototypeCall(socketOnError, socket, ret); - return; - } - - if (!server.httpAllowHalfOpen) { - abortIncoming(state.incoming); - if (socket.writable) socket.end(); - } else if (state.outgoing.length) { - state.outgoing[state.outgoing.length - 1]._last = true; - } else if (socket._httpMessage) { - socket._httpMessage._last = true; - } else if (socket.writable) { + socket.destroy(ret); + } else { + // TODO(ronag): Does end() vs destroy() make any difference? socket.end(); } } diff --git a/lib/https.js b/lib/https.js index a7fcf06a95f273..e4a4612780bf79 100644 --- a/lib/https.js +++ b/lib/https.js @@ -73,8 +73,6 @@ function Server(opts, requestListener) { FunctionPrototypeCall(tls.Server, this, opts, _connectionListener); - this.httpAllowHalfOpen = false; - if (requestListener) { this.addListener('request', requestListener); }