diff --git a/lib/dns.js b/lib/dns.js index a2564b903b44da..d4c7d2c3c0e44e 100644 --- a/lib/dns.js +++ b/lib/dns.js @@ -46,6 +46,8 @@ const { getDefaultResultOrder, setDefaultResultOrder, errorCodes: dnsErrorCodes, + validDnsOrders, + validFamilies, } = require('internal/dns/utils'); const { Resolver, @@ -138,7 +140,6 @@ function onlookupall(err, addresses) { // Easy DNS A/AAAA look up // lookup(hostname, [options,] callback) -const validFamilies = [0, 4, 6]; function lookup(hostname, options, callback) { let hints = 0; let family = 0; @@ -192,7 +193,7 @@ function lookup(hostname, options, callback) { dnsOrder = options.verbatim ? 'verbatim' : 'ipv4first'; } if (options?.order != null) { - validateOneOf(options.order, 'options.order', ['ipv4first', 'ipv6first', 'verbatim']); + validateOneOf(options.order, 'options.order', validDnsOrders); dnsOrder = options.order; } } diff --git a/lib/internal/dns/promises.js b/lib/internal/dns/promises.js index 443d21dc2798ac..300052a04608ae 100644 --- a/lib/internal/dns/promises.js +++ b/lib/internal/dns/promises.js @@ -16,6 +16,8 @@ const { getDefaultResultOrder, setDefaultResultOrder, setDefaultResolver, + validDnsOrders, + validFamilies, } = require('internal/dns/utils'); const { @@ -179,7 +181,6 @@ function createLookupPromise(family, hostname, all, hints, dnsOrder) { }); } -const validFamilies = [0, 4, 6]; /** * Get the IP address for a given hostname. * @param {string} hostname - The hostname to resolve (ex. 'nodejs.org'). @@ -227,7 +228,7 @@ function lookup(hostname, options) { dnsOrder = options.verbatim ? 'verbatim' : 'ipv4first'; } if (options?.order != null) { - validateOneOf(options.order, 'options.order', ['ipv4first', 'ipv6first', 'verbatim']); + validateOneOf(options.order, 'options.order', validDnsOrders); dnsOrder = options.order; } } diff --git a/lib/internal/dns/utils.js b/lib/internal/dns/utils.js index bcca83fd4fe54d..85918f0d43d5c6 100644 --- a/lib/internal/dns/utils.js +++ b/lib/internal/dns/utils.js @@ -201,6 +201,8 @@ class ResolverBase { let defaultResolver; let dnsOrder; +const validDnsOrders = ['verbatim', 'ipv4first', 'ipv6first']; +const validFamilies = [0, 4, 6]; function initializeDns() { const orderFromCLI = getOptionValue('--dns-result-order'); @@ -208,7 +210,7 @@ function initializeDns() { dnsOrder ??= 'verbatim'; } else { // Allow the deserialized application to override order from CLI. - validateOneOf(orderFromCLI, '--dns-result-order', ['verbatim', 'ipv4first', 'ipv6first']); + validateOneOf(orderFromCLI, '--dns-result-order', validDnsOrders); dnsOrder = orderFromCLI; } @@ -281,7 +283,7 @@ function emitInvalidHostnameWarning(hostname) { } function setDefaultResultOrder(value) { - validateOneOf(value, 'dnsOrder', ['verbatim', 'ipv4first', 'ipv6first']); + validateOneOf(value, 'dnsOrder', validDnsOrders); dnsOrder = value; } @@ -356,4 +358,6 @@ module.exports = { errorCodes, createResolverClass, initializeDns, + validDnsOrders, + validFamilies, };