diff --git a/lib/wire/messagestream.js b/lib/wire/messagestream.js index 66e6cf37..956f0fa9 100644 --- a/lib/wire/messagestream.js +++ b/lib/wire/messagestream.js @@ -17,20 +17,18 @@ DelimitedStream.prototype._transform = function(chunk, encoding, done) { while (this._buffer.length) { if (this._readingLength) { var byte = this._buffer[0] + this._length += (byte & 0x7f) << (7 * this._lengthIndex) if (byte & (1 << 7)) { - this._length += (byte & 0x7f) << (7 * this._lengthIndex) this._lengthIndex += 1 this._readingLength = true } else { - this._length += (byte & 0x7f) << (7 * this._lengthIndex) this._lengthIndex = 0 this._readingLength = false } this._buffer = this._buffer.slice(1) } - - if (!this._readingLength) { + else { if (this._length <= this._buffer.length) { this.push(this._buffer.slice(0, this._length)) this._buffer = this._buffer.slice(this._length)