diff --git a/lib/tls.js b/lib/tls.js index 3debbef389b..58481206131 100644 --- a/lib/tls.js +++ b/lib/tls.js @@ -168,25 +168,23 @@ CryptoStream.prototype.getCipher = function(err) { CryptoStream.prototype.end = function(d) { - if (!this.writable) { - throw new Error('CryptoStream is not writable'); + if (this.writable) { + if (this.pair._done) return; + + if (d) { + this.write(d); + } + + this._pending.push(END_OF_FILE); + this._pendingCallbacks.push(null); + + // If this is an encrypted stream then we need to disable further 'data' + // events. + + this.writable = false; + + this.pair._cycle(); } - - if (this.pair._done) return; - - if (d) { - this.write(d); - } - - this._pending.push(END_OF_FILE); - this._pendingCallbacks.push(null); - - // If this is an encrypted stream then we need to disable further 'data' - // events. - - this.writable = false; - - this.pair._cycle(); };