• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict';
2const common = require('../common');
3const assert = require('assert');
4const http = require('http');
5
6let socketsCreated = 0;
7
8class Agent extends http.Agent {
9  createConnection(options, oncreate) {
10    const socket = super.createConnection(options, oncreate);
11    socketsCreated++;
12    return socket;
13  }
14}
15
16const server = http.createServer((req, res) => res.end());
17
18server.listen(0, common.mustCall(() => {
19  const port = server.address().port;
20  const agent = new Agent({
21    keepAlive: true,
22    maxSockets: 1
23  });
24
25  http.get({ agent, port }, (res) => res.resume());
26
27  const req = http.get({ agent, port }, common.mustNotCall());
28  req.abort();
29
30  http.get({ agent, port }, common.mustCall((res) => {
31    res.resume();
32    assert.strictEqual(socketsCreated, 1);
33    agent.destroy();
34    server.close();
35  }));
36}));
37