diff --git a/package.json b/package.json index cf29f2691..9ceb1865f 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "license": "Apache 2.0", "dependencies": { "chalk": "~0.4", - "forever-agent": "~0.5", + "forever-agent": "0.5.2", "lodash-node": "~2.4", "when": "~2.8" }, diff --git a/src/lib/connectors/_custom_forever_agent.js b/src/lib/connectors/_custom_forever_agent.js new file mode 100644 index 000000000..c40ba3a6e --- /dev/null +++ b/src/lib/connectors/_custom_forever_agent.js @@ -0,0 +1,17 @@ +module.exports = CustomForeverAgent; + +var ForeverAgent = require('forever-agent'); +var inherits = require('util').inherits; + +function CustomForeverAgent(opts) { + ForeverAgent.call(this, opts); +} +inherits(CustomForeverAgent, ForeverAgent); + +CustomForeverAgent.prototype.addRequest = function (req, host, port) { + // force this, so that requests will always use the connection pool + req.useChunkedEncodingByDefault = false; + ForeverAgent.prototype.addRequest.call(this, req, host, port); +}; + +CustomForeverAgent.SSL = ForeverAgent.SSL; \ No newline at end of file diff --git a/src/lib/connectors/http.js b/src/lib/connectors/http.js index 521ba8d0c..8c514fe69 100644 --- a/src/lib/connectors/http.js +++ b/src/lib/connectors/http.js @@ -14,7 +14,7 @@ var handles = { }; var _ = require('../utils'); var qs = require('querystring'); -var ForeverAgent = require('forever-agent'); +var ForeverAgent = require('./_custom_forever_agent'); var ConnectionAbstract = require('../connection'); /** @@ -163,8 +163,6 @@ HttpConnector.prototype.request = function (params, cb) { request.setNoDelay(true); request.setSocketKeepAlive(true); - request.chunkedEncoding = false; - request.useChunkedEncodingByDefault = false; if (params.body) { request.setHeader('Content-Length', Buffer.byteLength(params.body, 'utf8')); @@ -176,4 +174,4 @@ HttpConnector.prototype.request = function (params, cb) { return function () { request.abort(); }; -}; +}; \ No newline at end of file