diff --git a/lib/_http_server.js b/lib/_http_server.js index e00d3cac0490e5..03aa08d1905310 100644 --- a/lib/_http_server.js +++ b/lib/_http_server.js @@ -801,6 +801,7 @@ function socketOnClose(socket, state) { debug('server socket close'); freeParser(socket.parser, null, socket); abortIncoming(state.incoming); + abortPendingMessages(state.outgoing); } function abortIncoming(incoming) { @@ -811,6 +812,13 @@ function abortIncoming(incoming) { // Abort socket._httpMessage ? } +function abortPendingMessages(outgoing) { + while (outgoing.length) { + const res = outgoing.shift(); + emitCloseNT(res); + } +} + function socketOnEnd(server, socket, parser, state) { const ret = parser.finish();