net: fix bogus errno reporting

_listen2() emits the error on the next tick. The errno value may have changed
by then.
This commit is contained in:
Ben Noordhuis 2012-07-12 16:56:42 +02:00
parent c6bb361b84
commit 5d97d72753

View File

@ -911,10 +911,11 @@ Server.prototype._listen2 = function(address, port, addressType, backlog, fd) {
r = self._handle.listen(backlog || 511); r = self._handle.listen(backlog || 511);
if (r) { if (r) {
var ex = errnoException(errno, 'listen');
self._handle.close(); self._handle.close();
self._handle = null; self._handle = null;
process.nextTick(function() { process.nextTick(function() {
self.emit('error', errnoException(errno, 'listen')); self.emit('error', ex);
}); });
return; return;
} }