From f29c2cbec59c5e08a25689b81093107604f8f9ef Mon Sep 17 00:00:00 2001 From: Fedor Indutny Date: Tue, 23 Jan 2018 15:23:33 -0500 Subject: [PATCH] http: there is no `corked` property of `stream` Do not check/use unexistent property, use `OutgoingMessage` instead. PR-URL: https://github.com/nodejs/node/pull/18325 Reviewed-By: Mithun Sasidharan Reviewed-By: Luigi Pinca Reviewed-By: James M Snell --- lib/_http_outgoing.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/_http_outgoing.js b/lib/_http_outgoing.js index 5f4e8e2cf14b96..425cfbcc2991b1 100644 --- a/lib/_http_outgoing.js +++ b/lib/_http_outgoing.js @@ -38,6 +38,8 @@ const errors = require('internal/errors'); const { CRLF, debug } = common; const { utcDate } = internalHttp; +const kIsCorked = Symbol('isCorked'); + var RE_FIELDS = /^(?:Connection|Transfer-Encoding|Content-Length|Date|Expect|Trailer|Upgrade)$/i; var RE_CONN_VALUES = /(?:^|\W)close|upgrade(?:$|\W)/ig; @@ -99,6 +101,7 @@ function OutgoingMessage() { this.finished = false; this._headerSent = false; + this[kIsCorked] = false; this.socket = null; this.connection = null; @@ -648,9 +651,10 @@ function write_(msg, chunk, encoding, callback, fromEnd) { // signal the user to keep writing. if (chunk.length === 0) return true; - if (!fromEnd && msg.connection && !msg.connection.corked) { + if (!fromEnd && msg.connection && !msg[kIsCorked]) { msg.connection.cork(); - process.nextTick(connectionCorkNT, msg.connection); + msg[kIsCorked] = true; + process.nextTick(connectionCorkNT, msg, msg.connection); } var len, ret; @@ -679,7 +683,8 @@ function writeAfterEndNT(err, callback) { } -function connectionCorkNT(conn) { +function connectionCorkNT(msg, conn) { + msg[kIsCorked] = false; conn.uncork(); }