Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Fix proxy/file-writer interaction

  • Loading branch information...
commit 7f5d05ee6b0c4ac0010c33a64a28afdb60d12a80 1 parent 1193b7a
@isaacs isaacs authored
Showing with 7 additions and 2 deletions.
  1. +5 −0 lib/file-writer.js
  2. +2 −2 lib/proxy-writer.js
View
5 lib/file-writer.js
@@ -36,12 +36,15 @@ FileWriter.prototype._create = function () {
me._stream = fs.createWriteStream(me._path, so)
me._stream.on("open", function (fd) {
+ // console.error("FW open", me._buffer, me._path)
me.ready = true
me._buffer.forEach(function (c) {
if (c === EOF) me._stream.end()
else me._stream.write(c)
})
me.emit("ready")
+ // give this a kick just in case it needs it.
+ me.emit("drain")
})
me._stream.on("drain", function () { me.emit("drain") })
@@ -58,6 +61,8 @@ FileWriter.prototype.write = function (c) {
me._bytesWritten += c.length
if (!me.ready) {
+ if (!Buffer.isBuffer(c) && typeof c !== 'string')
+ throw new Error('invalid write data')
me._buffer.push(c)
return false
}
View
4 lib/proxy-writer.js
@@ -71,7 +71,7 @@ ProxyWriter.prototype._addProxy = function (proxy) {
var calls = me._buffer
calls.forEach(function (c) {
// console.error("~~ ~~ proxy buffered call", c[0], c[1])
- proxy[c[0]].call(proxy, c[1])
+ proxy[c[0]].apply(proxy, c[1])
})
me._buffer.length = 0
if (me._needsDrain) me.emit("drain")
@@ -102,7 +102,7 @@ ProxyWriter.prototype.write = function (c) {
ProxyWriter.prototype.end = function (c) {
// console.error("~~ proxy end")
if (!this._proxy) {
- this._buffer.push(["end", c])
+ this._buffer.push(["end", [c]])
return false
}
return this._proxy.end(c)
Please sign in to comment.
Something went wrong with that request. Please try again.