• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict';
2
3const common = require('../common');
4const http = require('http');
5const net = require('net');
6const assert = require('assert');
7
8function request(socket) {
9  socket.write('GET / HTTP/1.1\r\n');
10  socket.write('Connection: keep-alive\r\n');
11  socket.write('\r\n\r\n');
12}
13
14const server = http.createServer(common.mustCall((req, res) => {
15  res.end('ok');
16}));
17
18server.on('dropRequest', common.mustCall((request, socket) => {
19  assert.strictEqual(request instanceof http.IncomingMessage, true);
20  assert.strictEqual(socket instanceof net.Socket, true);
21  server.close();
22}));
23
24server.listen(0, common.mustCall(() => {
25  const socket = net.connect(server.address().port);
26  socket.on('connect', common.mustCall(() => {
27    request(socket);
28    request(socket);
29  }));
30  socket.on('data', common.mustCallAtLeast());
31  socket.on('close', common.mustCall());
32}));
33
34server.maxRequestsPerSocket = 1;
35