diff options
author | Robert Nagy <ronagy@icloud.com> | 2019-08-11 11:09:40 +0200 |
---|---|---|
committer | Rich Trott <rtrott@gmail.com> | 2019-08-19 12:56:08 -0700 |
commit | bdf07f4317ce738bbe56c5b91aaebf35d15052a8 (patch) | |
tree | c307d625a9855714aac9e317aad6393ff3306a2c /lib/_http_server.js | |
parent | a0cc62f34549302d7a85588776c23faffda1f8b7 (diff) | |
download | android-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.js | 12 |
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); |