summaryrefslogtreecommitdiff
path: root/lib/_tls_legacy.js
diff options
context:
space:
mode:
authorTimothy J Fontaine <tjfontaine@gmail.com>2013-12-06 21:27:18 -0800
committerTimothy J Fontaine <tjfontaine@gmail.com>2013-12-06 21:27:18 -0800
commitfcca3585fea09ab4a5a86628dceeb248ff82b1ff (patch)
tree49c5f65a4555cb4b6665d17bc31fd71692c84fd1 /lib/_tls_legacy.js
parentf4f4a2b9f8f1a1e012e184c0265a577f180d789c (diff)
parent2905884b63eb24184b576b1a963a4d72b0159171 (diff)
downloadnode-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.js15
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();