Skip to content

Commit 2e1ae3e

Browse files
alexpenev-sbenjamingr
authored andcommitted
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>
1 parent 9eb0ef4 commit 2e1ae3e

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

lib/_http_agent.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,9 @@ Agent.prototype.addRequest = function(req, options) {
115115
};
116116
}
117117

118+
options = util._extend({}, options);
119+
options = util._extend(options, this.options);
120+
118121
var name = this.getName(options);
119122
if (!this.sockets[name]) {
120123
this.sockets[name] = [];

0 commit comments

Comments
 (0)