Skip to content

Commit dd8e09a

Browse files
committed
fixup! http: handle cases where socket.server is null
1 parent 6f2e806 commit dd8e09a

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
'use strict';
22

3+
// Regression test for https://github.com/nodejs/node/issues/13435
4+
// Tests that `socket.server` is correctly set when a socket is sent to a worker
5+
// and the `'connection'` event is emitted manually on an HTTP server.
6+
37
const common = require('../common');
48
const assert = require('assert');
59
const cluster = require('cluster');
@@ -8,13 +12,11 @@ const net = require('net');
812

913
if (cluster.isMaster) {
1014
const worker = cluster.fork();
11-
const server = net.createServer({
12-
pauseOnConnect: true
13-
}, common.mustCall((socket) => {
15+
const server = net.createServer(common.mustCall((socket) => {
1416
worker.send('socket', socket);
1517
}));
1618

17-
worker.on('exit', common.mustCall((code, signal) => {
19+
worker.on('exit', common.mustCall((code) => {
1820
assert.strictEqual(code, 0);
1921
server.close();
2022
}));
@@ -25,13 +27,13 @@ if (cluster.isMaster) {
2527
} else {
2628
const server = http.createServer();
2729

28-
server.setTimeout(100, common.mustCall((socket) => {
30+
server.on('connection', common.mustCall((socket) => {
31+
assert.strictEqual(socket.server, server);
2932
socket.destroy();
30-
cluster.worker.kill();
33+
cluster.worker.disconnect();
3134
}));
3235

3336
process.on('message', common.mustCall((message, socket) => {
3437
server.emit('connection', socket);
35-
socket.resume();
3638
}));
3739
}

0 commit comments

Comments
 (0)