Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
http: make ClientRequest#setTimeout() noop at end
Originally discovered and resolved by @szmarczak. PR-URL: #25536 Fixes: #25499 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
- Loading branch information
Showing
with
37 additions
and 0 deletions.
There are no files selected for viewing
| @@ -0,0 +1,33 @@ | ||
| 'use strict'; | ||
|
|
||
| // Test https://github.com/nodejs/node/issues/25499 fix. | ||
|
|
||
| const { mustCall } = require('../common'); | ||
|
|
||
| const { Agent, createServer, get } = require('http'); | ||
| const { strictEqual } = require('assert'); | ||
|
|
||
| const server = createServer(mustCall((req, res) => { | ||
| res.end(); | ||
| })); | ||
|
|
||
| server.listen(0, () => { | ||
| const agent = new Agent({ keepAlive: true, maxSockets: 1 }); | ||
| const port = server.address().port; | ||
|
|
||
| let socket; | ||
|
|
||
| const req = get({ agent, port }, (res) => { | ||
| res.on('end', () => { | ||
| strictEqual(req.setTimeout(0), req); | ||
| strictEqual(socket.listenerCount('timeout'), 0); | ||
| agent.destroy(); | ||
| server.close(); | ||
| }); | ||
| res.resume(); | ||
| }); | ||
|
|
||
| req.on('socket', (sock) => { | ||
| socket = sock; | ||
| }); | ||
| }); |