diff --git a/lib/server/pipe.js b/lib/server/pipe.js index e86e65ba..57bfbed4 100644 --- a/lib/server/pipe.js +++ b/lib/server/pipe.js @@ -24,7 +24,7 @@ function create(params) { var gzip, read, write, isFsWrite, p = params, - func = Util.exec.ret(p.callback), + func = p.callback, options = { bufferSize: 4 * 1024 }; @@ -71,11 +71,16 @@ } function on(event, emitter, callback) { - var listeners = emitter.listeners(event), - indexOf = listeners.indexOf(callback); + var isSet, + listeners = emitter.listeners(event), + callbackStr = '' + callback; - if (!~indexOf) - emitter.once(event, callback); + isSet = listeners.some(function(func) { + return '' + func === callbackStr; + }); + + if (!isSet) + emitter.on(event, callback); } /**