ip: fix parseHost for ipv6.
This commit is contained in:
parent
9d8f95ee0f
commit
1836d8b314
@ -24,15 +24,25 @@ exports.parseHost = function parseHost(addr, fallback) {
|
|||||||
var parts, host, version;
|
var parts, host, version;
|
||||||
|
|
||||||
assert(typeof addr === 'string');
|
assert(typeof addr === 'string');
|
||||||
assert(addr.length > 0);
|
|
||||||
assert(typeof port === 'number');
|
assert(typeof port === 'number');
|
||||||
|
|
||||||
|
assert(addr.length > 0, 'Bad address.');
|
||||||
|
|
||||||
|
// [ipv6]:port
|
||||||
if (addr[0] === '[') {
|
if (addr[0] === '[') {
|
||||||
addr = addr.substring(1);
|
addr = addr.substring(1);
|
||||||
parts = addr.split(/\]:?/);
|
parts = addr.split(/\]:?/);
|
||||||
assert(parts.length === 2);
|
assert(parts.length === 2, 'Bad IPv6 address.');
|
||||||
} else {
|
} else {
|
||||||
parts = addr.split(':');
|
parts = addr.split(':');
|
||||||
|
if (parts.length > 2) {
|
||||||
|
// ipv6 - no port
|
||||||
|
assert(IP.isV6Format(addr), 'Bad IPv6 address.');
|
||||||
|
parts = [addr];
|
||||||
|
} else {
|
||||||
|
// domain/ipv4:port?
|
||||||
|
assert(parts.length <= 2, 'Bad host.');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
host = parts[0];
|
host = parts[0];
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user