diff options
author | Timothy J Fontaine <tjfontaine@gmail.com> | 2013-12-06 21:27:18 -0800 |
---|---|---|
committer | Timothy J Fontaine <tjfontaine@gmail.com> | 2013-12-06 21:27:18 -0800 |
commit | fcca3585fea09ab4a5a86628dceeb248ff82b1ff (patch) | |
tree | 49c5f65a4555cb4b6665d17bc31fd71692c84fd1 /lib/_tls_legacy.js | |
parent | f4f4a2b9f8f1a1e012e184c0265a577f180d789c (diff) | |
parent | 2905884b63eb24184b576b1a963a4d72b0159171 (diff) | |
download | node-new-fcca3585fea09ab4a5a86628dceeb248ff82b1ff.tar.gz |
Merge remote-tracking branch 'upstream/v0.10'
Conflicts:
lib/tls.js
src/node.js
Diffstat (limited to 'lib/_tls_legacy.js')
-rw-r--r-- | lib/_tls_legacy.js | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/lib/_tls_legacy.js b/lib/_tls_legacy.js index 6f7607ffc2..2f7559d09d 100644 --- a/lib/_tls_legacy.js +++ b/lib/_tls_legacy.js @@ -273,30 +273,29 @@ CryptoStream.prototype._read = function read(size) { } var bytesRead = 0, - start = this._buffer.offset; + start = this._buffer.offset, + last = start; do { + assert(last === this._buffer.offset); var read = this._buffer.use(this.pair.ssl, out, size - bytesRead); if (read > 0) { bytesRead += read; } + last = this._buffer.offset; // Handle and report errors if (this.pair.ssl && this.pair.ssl.error) { this.pair.error(); break; } - - // Get NPN and Server name when ready - this.pair.maybeInitFinished(); - - // `maybeInitFinished()` can emit the 'secure' event which - // in turn destroys the connection in case of authentication - // failure and sets `this.pair.ssl` to `null`. } while (read > 0 && !this._buffer.isFull && bytesRead < size && this.pair.ssl !== null); + // Get NPN and Server name when ready + this.pair.maybeInitFinished(); + // Create new buffer if previous was filled up var pool = this._buffer.pool; if (this._buffer.isFull) this._buffer.create(); |