Skip to content

Commit

Permalink
http: there is no corked property of stream
Browse files Browse the repository at this point in the history
Do not check/use unexistent property, use `OutgoingMessage` instead.

PR-URL: #18325
Reviewed-By: Mithun Sasidharan <mithunsasidharan89@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
  • Loading branch information
indutny authored and evanlucas committed Jan 30, 2018
1 parent d829237 commit 7fc395a
Showing 1 changed file with 8 additions and 3 deletions.
11 changes: 8 additions & 3 deletions lib/_http_outgoing.js
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -99,6 +101,7 @@ function OutgoingMessage() {

this.finished = false;
this._headerSent = false;
this[kIsCorked] = false;

this.socket = null;
this.connection = null;
Expand Down Expand Up @@ -657,9 +660,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;
Expand Down Expand Up @@ -688,7 +692,8 @@ function writeAfterEndNT(err, callback) {
}


function connectionCorkNT(conn) {
function connectionCorkNT(msg, conn) {
msg[kIsCorked] = false;
conn.uncork();
}

Expand Down

0 comments on commit 7fc395a

Please sign in to comment.