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;
|
||||
|
||||
assert(typeof addr === 'string');
|
||||
assert(addr.length > 0);
|
||||
assert(typeof port === 'number');
|
||||
|
||||
assert(addr.length > 0, 'Bad address.');
|
||||
|
||||
// [ipv6]:port
|
||||
if (addr[0] === '[') {
|
||||
addr = addr.substring(1);
|
||||
parts = addr.split(/\]:?/);
|
||||
assert(parts.length === 2);
|
||||
assert(parts.length === 2, 'Bad IPv6 address.');
|
||||
} else {
|
||||
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];
|
||||
|
||||
Loading…
Reference in New Issue
Block a user