diff --git a/lib/_http_outgoing.js b/lib/_http_outgoing.js index 8f6500ab58a6f2..79572afc5f0a55 100644 --- a/lib/_http_outgoing.js +++ b/lib/_http_outgoing.js @@ -381,14 +381,11 @@ function _writeRaw(data, encoding, callback) { } if (conn && conn.writable && !this._removedContLen && this._hasBody) { - const shouldContinue = conn._httpMessage.statusCode !== 304 && !this.getHeader('transfer-encoding'); + const skip = conn._httpMessage.statusCode === 304 || (this.hasHeader('transfer-encoding') || this.chunkedEncoding); - if (typeof this._contentLength === 'number' && shouldContinue) { + if (typeof this._contentLength === 'number' && !skip) { const size = _getMessageBodySize(data, conn._httpMessage._header, encoding); - console.log({data,size, _contentLength: this._contentLength, written: this[kBytesWritten]}); - console.log("\n*********************************\n"); - if ((size + this[kBytesWritten]) > this._contentLength) { throw new ERR_HTTP_CONTENT_LENGTH_MISMATCH(size + this[kBytesWritten], this._contentLength); } diff --git a/test/parallel/test-http-content-length-mismatch.js b/test/parallel/test-http-content-length-mismatch.js index 94a285dca18568..485d6e92caef0f 100644 --- a/test/parallel/test-http-content-length-mismatch.js +++ b/test/parallel/test-http-content-length-mismatch.js @@ -25,7 +25,7 @@ function shouldThrowOnMoreBytes() { assert.strictEqual(res.statusCode, 200); server.close(); })); - req.end() + req.end(); }); } diff --git a/test/parallel/test-http-outgoing-properties.js b/test/parallel/test-http-outgoing-properties.js index ec25546c4b66ec..85c5b659a36d64 100644 --- a/test/parallel/test-http-outgoing-properties.js +++ b/test/parallel/test-http-outgoing-properties.js @@ -49,7 +49,7 @@ const OutgoingMessage = http.OutgoingMessage; msg._implicitHeader = function() {}; assert.strictEqual(msg.writableLength, 0); msg.write('asd'); - assert.strictEqual(msg.writableLength, 7); + assert.strictEqual(msg.writableLength, 3); } { diff --git a/test/parallel/test-http-response-multi-content-length.js b/test/parallel/test-http-response-multi-content-length.js index 0ef45a027fb64d..3ae53ffb7ecbfd 100644 --- a/test/parallel/test-http-response-multi-content-length.js +++ b/test/parallel/test-http-response-multi-content-length.js @@ -24,7 +24,7 @@ function test(server) { { const server = http.createServer((req, res) => { res.setHeader('content-length', [2, 1]); - res.end('ok'); + res.end('k'); }); test(server);