Skip to content

Commit 1edadeb

Browse files
lpincaMylesBorins
authored andcommittedApr 13, 2018
http: allow _httpMessage to be GC'ed
Set `socket._httpMessage` to `null` before emitting the `'connect'` or `'upgrade'` event. PR-URL: #18865 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
1 parent d799b1c commit 1edadeb

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed
 

‎lib/_http_agent.js

+1
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,7 @@ function installListeners(agent, s, options) {
249249
s.removeListener('close', onClose);
250250
s.removeListener('free', onFree);
251251
s.removeListener('agentRemove', onRemove);
252+
s._httpMessage = null;
252253
}
253254
s.on('agentRemove', onRemove);
254255
}

‎test/parallel/test-http-connect.js

+6-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,11 @@ server.listen(0, common.mustCall(() => {
2828
path: 'google.com:443'
2929
}, common.mustNotCall());
3030

31-
req.on('close', common.mustCall(() => {}));
31+
req.on('socket', common.mustCall((socket) => {
32+
assert.strictEqual(socket._httpMessage, req);
33+
}));
34+
35+
req.on('close', common.mustCall());
3236

3337
req.on('connect', common.mustCall((res, socket, firstBodyChunk) => {
3438
// Make sure this request got removed from the pool.
@@ -39,6 +43,7 @@ server.listen(0, common.mustCall(() => {
3943
// Make sure this socket has detached.
4044
assert(!socket.ondata);
4145
assert(!socket.onend);
46+
assert.strictEqual(socket._httpMessage, null);
4247
assert.strictEqual(socket.listeners('connect').length, 0);
4348
assert.strictEqual(socket.listeners('data').length, 0);
4449

0 commit comments

Comments
 (0)
Please sign in to comment.