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.js12
1 files changed, 7 insertions, 5 deletions
diff --git a/lib/_http_server.js b/lib/_http_server.js
index b083983c94..2c48ab9191 100644
--- a/lib/_http_server.js
+++ b/lib/_http_server.js
@@ -32,7 +32,6 @@ const {
CRLF,
continueExpression,
chunkExpression,
- httpSocketSetup,
kIncomingMessage,
HTTPParser,
_checkInvalidHeaderChar: checkInvalidHeaderChar,
@@ -41,7 +40,7 @@ const {
const { OutgoingMessage } = require('_http_outgoing');
const {
kOutHeaders,
- ondrain,
+ kNeedDrain,
nowDate,
emitStatistics
} = require('internal/http');
@@ -359,8 +358,6 @@ function connectionListener(socket) {
function connectionListenerInternal(server, socket) {
debug('SERVER new http connection');
- httpSocketSetup(socket);
-
// Ensure that the server property of the socket is correctly set.
// See https://github.com/nodejs/node/issues/13435
if (socket.server === null)
@@ -455,6 +452,12 @@ function socketOnDrain(socket, state) {
socket.parser.resume();
socket.resume();
}
+
+ const msg = socket._httpMessage;
+ if (msg && !msg.finished && msg[kNeedDrain]) {
+ msg[kNeedDrain] = false;
+ msg.emit('drain');
+ }
}
function socketOnTimeout() {
@@ -581,7 +584,6 @@ function onParserExecuteCommon(server, socket, parser, state, ret, d) {
socket.removeListener('end', state.onEnd);
socket.removeListener('close', state.onClose);
socket.removeListener('drain', state.onDrain);
- socket.removeListener('drain', ondrain);
socket.removeListener('error', socketOnError);
socket.removeListener('timeout', socketOnTimeout);
unconsume(parser, socket);