dns: do not indicate invalid IPs are IPv6
In lib/dns.js, use `isIP()` instead of `isIPv4()` for determining the `family` property in `lookup()`. If an invalid IP address is returned, the `family` currently provided is `6`. With this change, it will be `0`. Update documentation to reflect this. PR-URL: https://github.com/nodejs/node/pull/27081 Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
This commit is contained in:
parent
bc2d258a3e
commit
09cdc37824
@ -154,7 +154,9 @@ changes:
|
|||||||
* `callback` {Function}
|
* `callback` {Function}
|
||||||
- `err` {Error}
|
- `err` {Error}
|
||||||
- `address` {string} A string representation of an IPv4 or IPv6 address.
|
- `address` {string} A string representation of an IPv4 or IPv6 address.
|
||||||
- `family` {integer} `4` or `6`, denoting the family of `address`.
|
- `family` {integer} `4` or `6`, denoting the family of `address`, or `0` if
|
||||||
|
the address is not an IPv4 or IPv6 address. `0` is a likely indicator of a
|
||||||
|
bug in the name resolution service used by the operating system.
|
||||||
|
|
||||||
Resolves a hostname (e.g. `'nodejs.org'`) into the first found A (IPv4) or
|
Resolves a hostname (e.g. `'nodejs.org'`) into the first found A (IPv4) or
|
||||||
AAAA (IPv6) record. All `option` properties are optional. If `options` is an
|
AAAA (IPv6) record. All `option` properties are optional. If `options` is an
|
||||||
|
@ -25,7 +25,7 @@ const { Object } = primordials;
|
|||||||
|
|
||||||
const cares = internalBinding('cares_wrap');
|
const cares = internalBinding('cares_wrap');
|
||||||
const { toASCII } = require('internal/idna');
|
const { toASCII } = require('internal/idna');
|
||||||
const { isIP, isIPv4, isLegalPort } = require('internal/net');
|
const { isIP, isLegalPort } = require('internal/net');
|
||||||
const { customPromisifyArgs } = require('internal/util');
|
const { customPromisifyArgs } = require('internal/util');
|
||||||
const errors = require('internal/errors');
|
const errors = require('internal/errors');
|
||||||
const {
|
const {
|
||||||
@ -62,7 +62,7 @@ function onlookup(err, addresses) {
|
|||||||
if (this.family) {
|
if (this.family) {
|
||||||
this.callback(null, addresses[0], this.family);
|
this.callback(null, addresses[0], this.family);
|
||||||
} else {
|
} else {
|
||||||
this.callback(null, addresses[0], isIPv4(addresses[0]) ? 4 : 6);
|
this.callback(null, addresses[0], isIP(addresses[0]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -77,7 +77,7 @@ function onlookupall(err, addresses) {
|
|||||||
const addr = addresses[i];
|
const addr = addresses[i];
|
||||||
addresses[i] = {
|
addresses[i] = {
|
||||||
address: addr,
|
address: addr,
|
||||||
family: family || (isIPv4(addr) ? 4 : 6)
|
family: family || isIP(addr)
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user