diff --git a/lib/internal/dns/utils.js b/lib/internal/dns/utils.js index 85918f0d43d5..57f371cc554a 100644 --- a/lib/internal/dns/utils.js +++ b/lib/internal/dns/utils.js @@ -16,6 +16,7 @@ const { ERR_DNS_SET_SERVERS_FAILED, ERR_INVALID_ARG_VALUE, ERR_INVALID_IP_ADDRESS, + ERR_MISSING_ARGS, }, } = require('internal/errors'); const { isIP } = require('internal/net'); @@ -162,10 +163,15 @@ class ResolverBase { } } - setLocalAddress(ipv4, ipv6) { - validateString(ipv4, 'ipv4'); + // Allow setting either IPv4 or IPv6 (or both). Throw if both are omitted. + if (ipv4 === undefined && ipv6 === undefined) { + throw new ERR_MISSING_ARGS('ipv4', 'ipv6'); + } + if (ipv4 !== undefined) { + validateString(ipv4, 'ipv4'); + } if (ipv6 !== undefined) { validateString(ipv6, 'ipv6'); }