From 2edd8e41830a9517710195f05ff6c05b18a33f4d Mon Sep 17 00:00:00 2001 From: Bernd Eckenfels Date: Mon, 3 Apr 2000 23:25:59 +0000 Subject: [PATCH] patch from matthew flanagan for better ipv6 address representation in netstat --- netstat.c | 32 ++++++++++++-------------------- 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/netstat.c b/netstat.c index abc168f..1be9f96 100644 --- a/netstat.c +++ b/netstat.c @@ -6,7 +6,7 @@ * NET-3 Networking Distribution for the LINUX operating * system. * - * Version: $Id: netstat.c,v 1.33 2000/03/19 12:36:39 philip Exp $ + * Version: $Id: netstat.c,v 1.34 2000/04/03 23:25:59 ecki Exp $ * * Authors: Fred Baumgarten, * Fred N. van Kempen, @@ -653,7 +653,7 @@ static void tcp_do_one(int lnr, const char *line) struct aftype *ap; #if HAVE_AFINET6 struct sockaddr_in6 localaddr, remaddr; - char addr6p[16][3], addr6[128]; + char addr6p[8][5], addr6[128]; extern struct aftype inet6_aftype; #else struct sockaddr_in localaddr, remaddr; @@ -671,28 +671,20 @@ static void tcp_do_one(int lnr, const char *line) #if HAVE_AFINET6 /* Demangle what the kernel gives us */ sscanf(local_addr, - "%2s%2s%2s%2s%2s%2s%2s%2s%2s%2s%2s%2s%2s%2s%2s%2s", + "%4s%4s%4s%4s%4s%4s%4s%4s", addr6p[0], addr6p[1], addr6p[2], addr6p[3], - addr6p[4], addr6p[5], addr6p[6], addr6p[7], - addr6p[8], addr6p[9], addr6p[10], addr6p[11], - addr6p[12], addr6p[13], addr6p[14], addr6p[15]); - snprintf(addr6, sizeof(addr6), "%s%s:%s%s:%s%s:%s%s:%s%s:%s%s:%s%s:%s%s", - addr6p[3], addr6p[2], addr6p[1], addr6p[0], - addr6p[7], addr6p[6], addr6p[5], addr6p[4], - addr6p[11], addr6p[10], addr6p[9], addr6p[8], - addr6p[15], addr6p[14], addr6p[13], addr6p[12]); + addr6p[4], addr6p[5], addr6p[6], addr6p[7]); + snprintf(addr6, sizeof(addr6), "%s:%s:%s:%s:%s:%s:%s:%s", + addr6p[0], addr6p[1], addr6p[2], addr6p[3], + addr6p[4], addr6p[5], addr6p[6], addr6p[7]); inet6_aftype.input(1, addr6, (struct sockaddr *) &localaddr); sscanf(rem_addr, - "%2s%2s%2s%2s%2s%2s%2s%2s%2s%2s%2s%2s%2s%2s%2s%2s", + "%4s%4s%4s%4s%4s%4s%4s%4s", addr6p[0], addr6p[1], addr6p[2], addr6p[3], - addr6p[4], addr6p[5], addr6p[6], addr6p[7], - addr6p[8], addr6p[9], addr6p[10], addr6p[11], - addr6p[12], addr6p[13], addr6p[14], addr6p[15]); - snprintf(addr6, sizeof(addr6), "%s%s:%s%s:%s%s:%s%s:%s%s:%s%s:%s%s:%s%s", - addr6p[3], addr6p[2], addr6p[1], addr6p[0], - addr6p[7], addr6p[6], addr6p[5], addr6p[4], - addr6p[11], addr6p[10], addr6p[9], addr6p[8], - addr6p[15], addr6p[14], addr6p[13], addr6p[12]); + addr6p[4], addr6p[5], addr6p[6], addr6p[7]); + snprintf(addr6, sizeof(addr6), "%s:%s:%s:%s:%s:%s:%s:%s", + addr6p[0], addr6p[1], addr6p[2], addr6p[3], + addr6p[4], addr6p[5], addr6p[6], addr6p[7]); inet6_aftype.input(1, addr6, (struct sockaddr *) &remaddr); localaddr.sin6_family = AF_INET6; remaddr.sin6_family = AF_INET6; -- 2.7.4