From 5e11b8a9375d014a4be1bfcb3de405a4287f1206 Mon Sep 17 00:00:00 2001 From: Ryan Dahl Date: Sat, 30 Oct 2010 13:31:51 -0700 Subject: [PATCH] De-indent dns.lookup --- lib/dns.js | 86 +++++++++++++++++++++++++++++------------------------- 1 file changed, 46 insertions(+), 40 deletions(-) diff --git a/lib/dns.js b/lib/dns.js index 40b7c65fdea..f9b0da22884 100644 --- a/lib/dns.js +++ b/lib/dns.js @@ -108,6 +108,7 @@ exports.getHostByAddr = function (address, family/*=4*/, callback) { // Easy DNS A/AAAA look up // lookup(domain, [family,] callback) exports.lookup = function (domain, family, callback) { + // parse arguments if (arguments.length === 2) { callback = family; family = undefined; @@ -121,54 +122,59 @@ exports.lookup = function (domain, family, callback) { throw new Error('invalid argument: "family" must be 4 or 6'); } } + if (!domain) { callback(null, null, family === 6 ? 6 : 4); return; } + var matchedFamily = net.isIP(domain); if (matchedFamily) { callback(null, domain, matchedFamily); - } else { - if (/\w\.local\.?$/.test(domain)) { - // ANNOYING: In the case of mDNS domains use NSS in the thread pool. - // I wish c-ares had better support. - process.binding('net').getaddrinfo(domain, 4, function (err, domains4) { - callback(err, domains4[0], 4); - }); - } else { - if (family) { - // resolve names for explicit address family - var af = familyToSym(family); - channel.getHostByName(domain, af, function (err, domains) { - if (!err && domains && domains.length) { - if (family !== net.isIP(domains[0])) { - callback(new Error('not found'), []); - } else { - callback(null, domains[0], family); - } - } else { - callback(err, []); - } - }); - } else { - // first resolve names for v4 and if that fails, try v6 - channel.getHostByName(domain, dns.AF_INET, function (err, domains4) { - if (domains4 && domains4.length) { - callback(null, domains4[0], 4); - } else { - channel.getHostByName(domain, dns.AF_INET6, - function (err, domains6) { - if (domains6 && domains6.length) { - callback(null, domains6[0], 6); - } else { - callback(err, []); - } - }); - } - }); - } - } + return; } + + if (/\w\.local\.?$/.test(domain)) { + // ANNOYING: In the case of mDNS domains use NSS in the thread pool. + // I wish c-ares had better support. + process.binding('net').getaddrinfo(domain, 4, function (err, domains4) { + callback(err, domains4[0], 4); + }); + return; + } + + if (family) { + // resolve names for explicit address family + var af = familyToSym(family); + channel.getHostByName(domain, af, function (err, domains) { + if (!err && domains && domains.length) { + if (family !== net.isIP(domains[0])) { + callback(new Error('not found'), []); + } else { + callback(null, domains[0], family); + } + } else { + callback(err, []); + } + }); + return + } + + // first resolve names for v4 and if that fails, try v6 + channel.getHostByName(domain, dns.AF_INET, function (err, domains4) { + if (domains4 && domains4.length) { + callback(null, domains4[0], 4); + } else { + channel.getHostByName(domain, dns.AF_INET6, + function (err, domains6) { + if (domains6 && domains6.length) { + callback(null, domains6[0], 6); + } else { + callback(err, []); + } + }); + } + }); };