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

Reply via email to