mirror of
https://github.com/zebrajr/node.git
synced 2026-01-15 12:15:26 +00:00
net: don't throw on immediately destroyed socket
Fixes regression introduced in af249fa8a1.
With connect being deferred to the next tick, Socket.destroy could be
called before connect. Socket.destroy sets _connecting to false which
would cause an assertion error.
Fixes: https://github.com/nodejs/io.js/issues/2250
PR-URL: https://github.com/nodejs/io.js/pull/2251
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
This commit is contained in:
@@ -927,7 +927,8 @@ function lookupAndConnect(self, options) {
|
||||
var addressType = exports.isIP(host);
|
||||
if (addressType) {
|
||||
process.nextTick(function() {
|
||||
connect(self, host, port, addressType, localAddress, localPort);
|
||||
if (self._connecting)
|
||||
connect(self, host, port, addressType, localAddress, localPort);
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
8
test/parallel/test-net-connect-immediate-destroy.js
Normal file
8
test/parallel/test-net-connect-immediate-destroy.js
Normal file
@@ -0,0 +1,8 @@
|
||||
'use strict';
|
||||
const common = require('../common');
|
||||
const assert = require('assert');
|
||||
const net = require('net');
|
||||
|
||||
const socket = net.connect(common.PORT, common.localhostIPv4, assert.fail);
|
||||
socket.on('error', assert.fail);
|
||||
socket.destroy();
|
||||
Reference in New Issue
Block a user