[PATCH v2] ss: Enclose IPv6 address in brackets
From: Florian Lehner <hidden>
Date: 2017-07-31 19:50:06
Subsystem:
the rest · Maintainer:
Linus Torvalds
From: Florian Lehner <hidden>
Date: 2017-07-31 19:50:06
Subsystem:
the rest · Maintainer:
Linus Torvalds
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 <redacted> --- 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