summaryrefslogtreecommitdiff
path: root/lib/_http_server.js
diff options
context:
space:
mode:
authorRobert Nagy <ronagy@icloud.com>2019-08-11 11:09:40 +0200
committerRich Trott <rtrott@gmail.com>2019-08-19 12:56:08 -0700
commitbdf07f4317ce738bbe56c5b91aaebf35d15052a8 (patch)
treec307d625a9855714aac9e317aad6393ff3306a2c /lib/_http_server.js
parenta0cc62f34549302d7a85588776c23faffda1f8b7 (diff)
downloadandroid-node-v8-bdf07f4317ce738bbe56c5b91aaebf35d15052a8.tar.gz
android-node-v8-bdf07f4317ce738bbe56c5b91aaebf35d15052a8.tar.bz2
android-node-v8-bdf07f4317ce738bbe56c5b91aaebf35d15052a8.zip
http: simplify drain()
Simplify and slightly optimize draining outgoing http streams. Avoid extra event listener and inline with rest of the drain logic. PR-URL: https://github.com/nodejs/node/pull/29081 Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
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);