This updated patch adds support for RFC2732 IPv6 address format with brackets for the tool ss. Resolved hostnames will not be enclosed in brackets, therefore the global variable resolve_hosts is initialized and checked.
Signed-off-by: Lehner Florian <d...@der-flo.net> --- misc/ss.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/misc/ss.c b/misc/ss.c index 12763c9..ac94537 100644 --- a/misc/ss.c +++ b/misc/ss.c @@ -88,7 +88,7 @@ static int security_get_initial_context(char *name, char **context) } #endif -int resolve_hosts; +int resolve_hosts = 0; int resolve_services = 1; int preferred_family = AF_UNSPEC; int show_options; @@ -1059,7 +1059,11 @@ static void inet_addr_print(const inet_prefix *a, int port, unsigned int ifindex ap = format_host(AF_INET, 4, a->data); } } else { - ap = format_host(a->family, 16, a->data); + if (a->family == AF_INET6 && !resolve_hosts) { + sprintf(buf, "[%s]", format_host(a->family, 16, a->data)); + } else { + ap = format_host(a->family, 16, a->data); + } est_len = strlen(ap); if (est_len <= addr_width) est_len = addr_width; -- 2.9.4