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:
Родитель
2ca5a3db47
Коммит
503b089dd8
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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();
|
Загрузка…
Ссылка в новой задаче