Skip to content
Permalink
Browse files

https: fix ssl socket leak when keepalive is used

SSL sockets leak whenever keep alive is enabled, ca option is set in
the global agent, and requests are sent without the ca property.
In the following case at Agent.prototype.createSocket a socket will
be created with a hashtag name that includes data from the global
agents’ ca property.

On subsequent requests at Agent.prototype.addRequest we do not find
the free socket, because the hashtag name generated there does not
take into account the global agents’ ca property, thus creating a new
socket and leaving the first socket to timeout. closes: #5699

PR-URL: #5713
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
  • Loading branch information...
alexpenev-s authored and Fishrock123 committed Mar 14, 2016
1 parent 75f723c commit 3bff3111f4cf65287d690e858807d08920f9a395
Showing with 3 additions and 0 deletions.
  1. +3 −0 lib/_http_agent.js
@@ -115,6 +115,9 @@ Agent.prototype.addRequest = function(req, options) {
};
}

options = util._extend({}, options);
options = util._extend(options, this.options);

var name = this.getName(options);
if (!this.sockets[name]) {
this.sockets[name] = [];

0 comments on commit 3bff311

Please sign in to comment.
You can’t perform that action at this time.