diff --git a/lib/request.js b/lib/request.js index ed68cef..ec61ef9 100644 --- a/lib/request.js +++ b/lib/request.js @@ -138,6 +138,7 @@ Request.prototype.saveBuffer = function(callback) { } if (err) { + self.request.abort(); self.error(err, callback); } }); @@ -188,6 +189,7 @@ Request.prototype.saveFile = function(file, callback) { var ws = fs.createWriteStream(file); ws.on('error', function(err) { + self.request.abort(); self.error(err, callback); }); @@ -425,6 +427,7 @@ Request.prototype.send = function(callback) { if (size > 1048576) { err.largeDocument = true; + self.request.abort(); self.error(err, callback); } }); @@ -437,6 +440,7 @@ Request.prototype.send = function(callback) { stream.on('error', function(zErr) { err.noDocument = true; err.message = zErr.message; + self.request.abort(); self.error(err, callback); }); @@ -445,6 +449,7 @@ Request.prototype.send = function(callback) { // catch all error handler default: + self.request.abort(); self.error(tools.formattedError('HTTP Error: %d', response.statusCode), callback); self.response.resume(); break; @@ -537,9 +542,6 @@ Request.prototype.error = function(error, callback) { if (!this.states.error && !this.states.finish) { this.states.error = true; - if (this.request) { - this.request.abort(); - } if (!error.code && this.response) { error.code = this.response.statusCode; diff --git a/package.json b/package.json index 8cd8215..bef0dd2 100644 --- a/package.json +++ b/package.json @@ -7,8 +7,8 @@ "node": ">= 0.8.5" }, "dependencies": { - "form-data": ">= 0.1.2", - "mmmagic": ">= 0.3.4" + "form-data": "~0.1.2", + "mmmagic": "~0.5.3" }, "devDependencies": { "mocha": ">= 1.8.2", @@ -56,4 +56,4 @@ "scripts": { "test": "make test" } -} \ No newline at end of file +}