|
|
@ -100,6 +100,7 @@ function onread(buffer, offset, length) { |
|
|
|
|
|
|
|
var end = offset + length; |
|
|
|
|
|
|
|
if (buffer) { |
|
|
|
// Emit 'data' event.
|
|
|
|
|
|
|
|
if (self._decoder) { |
|
|
@ -116,6 +117,18 @@ function onread(buffer, offset, length) { |
|
|
|
|
|
|
|
// Optimization: emit the original buffer with end points
|
|
|
|
if (self.ondata) self.ondata(buffer, offset, end); |
|
|
|
|
|
|
|
} else { |
|
|
|
// EOF
|
|
|
|
self.readable = false; |
|
|
|
|
|
|
|
if (!self.writable) self.destroy(); |
|
|
|
// Note: 'close' not emitted until nextTick.
|
|
|
|
|
|
|
|
if (!self.allowHalfOpen) self.end(); |
|
|
|
if (self._events && self._events['end']) self.emit('end'); |
|
|
|
if (self.onend) self.onend(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|