diff --git a/lib/net.js b/lib/net.js index 83ab9646db23ef..f8329a1931ba22 100644 --- a/lib/net.js +++ b/lib/net.js @@ -19,8 +19,9 @@ const PipeConnectWrap = process.binding('pipe_wrap').PipeConnectWrap; const ShutdownWrap = process.binding('stream_wrap').ShutdownWrap; const WriteWrap = process.binding('stream_wrap').WriteWrap; - var cluster; +var dns; + const errnoException = util._errnoException; const exceptionWithHostPort = util._exceptionWithHostPort; const isLegalPort = internalNet.isLegalPort; @@ -948,7 +949,7 @@ function realConnect(options, cb) { function lookupAndConnect(self, options) { - const dns = require('dns'); + const dns = lazyDns(); var host = options.host || 'localhost'; var port = options.port; var localAddress = options.localAddress; @@ -1286,6 +1287,13 @@ function emitListeningNT(self) { } +function lazyDns() { + if (dns === undefined) + dns = require('dns'); + return dns; +} + + function listenInCluster(server, address, port, addressType, backlog, fd, exclusive) { exclusive = !!exclusive; @@ -1414,7 +1422,7 @@ Server.prototype.listen = function() { }; function lookupAndListen(self, port, address, backlog, exclusive) { - const dns = require('dns'); + const dns = lazyDns(); dns.lookup(address, function doListen(err, ip, addressType) { if (err) { self.emit('error', err);