From c11612026fa28f7aedc60c577120f87d86fc15bf Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Thu, 28 Feb 2013 23:25:29 +0100 Subject: [PATCH] net: omit superfluous 'connect' event Don't emit a 'connect' event on sockets that are handed off to net.Server 'connection' event listeners. 1. It's superfluous because the connection has already been established at that point. 2. The implementation is arguably wrong because the event is emitted on the same tick of the event loop while the rule of thumb is to always emit it on the next one. This has been tried before in commit f0a440d but was reverted again in ede1acc because the change was incomplete (at least one test hadn't been updated). Fixes #1047 (again). --- lib/net.js | 1 - test/pummel/test-net-throttle.js | 15 ++++++--------- test/simple/test-net-reconnect.js | 6 ++---- 3 files changed, 8 insertions(+), 14 deletions(-) diff --git a/lib/net.js b/lib/net.js index d5e85b1..83ca47c 100644 --- a/lib/net.js +++ b/lib/net.js @@ -1118,7 +1118,6 @@ function onconnection(clientHandle) { DTRACE_NET_SERVER_CONNECTION(socket); COUNTER_NET_SERVER_CONNECTION(socket); self.emit('connection', socket); - socket.emit('connect'); } diff --git a/test/pummel/test-net-throttle.js b/test/pummel/test-net-throttle.js index 29fd184..e99a798 100644 --- a/test/pummel/test-net-throttle.js +++ b/test/pummel/test-net-throttle.js @@ -40,15 +40,12 @@ for (var i = 0; i < N; i++) { console.log('start server on port ' + common.PORT); var server = net.createServer(function(connection) { - connection.on('connect', function() { - connection.write(body.slice(0, part_N)); - connection.write(body.slice(part_N, 2 * part_N)); - assert.equal(false, connection.write(body.slice(2 * part_N, N))); - console.log('bufferSize: ' + connection.bufferSize); - assert.ok(0 <= connection.bufferSize && - connection.bufferSize <= N); - connection.end(); - }); + connection.write(body.slice(0, part_N)); + connection.write(body.slice(part_N, 2 * part_N)); + assert.equal(false, connection.write(body.slice(2 * part_N, N))); + console.log('bufferSize: ' + connection.bufferSize); + assert.ok(0 <= connection.bufferSize && connection.bufferSize <= N); + connection.end(); }); server.listen(common.PORT, function() { diff --git a/test/simple/test-net-reconnect.js b/test/simple/test-net-reconnect.js index 58e0fef..f4b1997 100644 --- a/test/simple/test-net-reconnect.js +++ b/test/simple/test-net-reconnect.js @@ -33,10 +33,8 @@ var server = net.createServer(function(socket) { console.error('SERVER: got socket connection'); socket.resume(); - socket.on('connect', function() { - console.error('SERVER connect, writing'); - socket.write('hello\r\n'); - }); + console.error('SERVER connect, writing'); + socket.write('hello\r\n'); socket.on('end', function() { console.error('SERVER socket end, calling end()'); -- 2.7.4