Browse Source

net: defer DNS lookup error events to next tick

net.createConnection() creates a net.Socket object
and immediately calls net.Socket.connect() on it.

There are no event listeners registered yet so
defer the error event to the next tick.

Fixes #1202.
v0.7.4-release
Ben Noordhuis 13 years ago
parent
commit
4e204f37fd
  1. 8
      lib/net.js

8
lib/net.js

@ -717,7 +717,13 @@ Socket.prototype.connect = function() {
// TCP
require('dns').lookup(arguments[1], function(err, ip, addressType) {
if (err) {
self.emit('error', err);
// net.createConnection() creates a net.Socket object and
// immediately calls net.Socket.connect() on it (that's us).
// There are no event listeners registered yet so defer the
// error event to the next tick.
process.nextTick(function() {
self.emit('error', err);
});
} else {
timers.active(self);
self.type = addressType == 4 ? 'tcp4' : 'tcp6';

Loading…
Cancel
Save