Fix GH-820. CryptoStream.end shouldn't throw if not writable
This matches the behavior of net.Socket
This commit is contained in:
parent
4198de280f
commit
7e28630f5e
34
lib/tls.js
34
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();
|
||||
};
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user