ss: enclose IPv6 address in brackets

Based on patch by Lehner Florian <dev@der-flo.net>

Adds support for RFC2732 IPv6 address format with brackets.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
This commit is contained in:
Stephen Hemminger 2017-08-04 12:02:41 -07:00
parent b6432e68ac
commit aba9c23a6e

View File

@ -1058,14 +1058,27 @@ static void inet_addr_print(const inet_prefix *a, int port, unsigned int ifindex
} else {
ap = format_host(AF_INET, 4, a->data);
}
} else {
if (!memcmp(a->data, &in6addr_any, sizeof(in6addr_any))) {
buf[0] = '*';
buf[1] = 0;
} else {
ap = format_host(a->family, 16, a->data);
/* Numeric IPv6 addresses should be bracketed */
if (strchr(ap, ':')) {
snprintf(buf, sizeof(buf),
"[%s]", ap);
ap = buf;
}
est_len = strlen(ap);
if (est_len <= addr_width)
est_len = addr_width;
else
est_len = addr_width + ((est_len-addr_width+3)/4)*4;
}
}
if (ifindex) {
ifname = ll_index_to_name(ifindex);