From 4c790d5a7a7df7a11e094a431a00e64bff65a19f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rub=C3=A9n=20Norte?= Date: Fri, 22 Jul 2016 21:09:54 +0200 Subject: [PATCH 1/2] Replacing 'agent' option with 'httpAgent' and 'httpsAgent' --- lib/adapters/http.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/adapters/http.js b/lib/adapters/http.js index 959bed9..21b02ae 100644 --- a/lib/adapters/http.js +++ b/lib/adapters/http.js @@ -61,13 +61,17 @@ module.exports = function httpAdapter(config) { var urlPassword = urlAuth[1] || ''; auth = urlUsername + ':' + urlPassword; } + + var isHttps = parsed.protocol === 'https:'; + var agent = isHttps ? config.httpsAgent : config.httpAgent; + var options = { hostname: parsed.hostname, port: parsed.port, path: buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\?/, ''), method: config.method, headers: headers, - agent: config.agent, + agent: agent, auth: auth }; @@ -79,12 +83,12 @@ module.exports = function httpAdapter(config) { var transport; if (config.maxRedirects === 0) { - transport = parsed.protocol === 'https:' ? https : http; + transport = isHttps ? https : http; } else { if (config.maxRedirects) { options.maxRedirects = config.maxRedirects; } - transport = parsed.protocol === 'https:' ? httpsFollow : httpFollow; + transport = isHttps ? httpsFollow : httpFollow; } // Create the request From f504dbaba8aba2843f05a13be7d218f4d7469cbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rub=C3=A9n=20Norte?= Date: Mon, 25 Jul 2016 00:07:44 +0200 Subject: [PATCH 2/2] Adding documentation for httpAgent and httpsAgent in README --- README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e66db3c..253a811 100644 --- a/README.md +++ b/README.md @@ -289,7 +289,13 @@ These are the available config options for making requests. Only the `url` is re // `maxRedirects` defines the maximum number of redirects to follow in node.js. // If set to 0, no redirects will be followed. - maxRedirects: 5 // default + maxRedirects: 5, // default + + // `httpAgent` and `httpsAgent` define a custom agent to be used when performing http + // and https requests, respectively, in node.js. This allows to configure options like + // `keepAlive` that are not enabled by default. + httpAgent: new http.Agent({ keepAlive: true }), + httpsAgent: new https.Agent({ keepAlive: true }) } ```