Date: Fri, 20 Nov 2015 16:10:58 +0000 (UTC) From: Hajimu UMEMOTO <ume@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r291101 - stable/10/usr.bin/netstat Message-ID: <201511201610.tAKGAw9b035212@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: ume Date: Fri Nov 20 16:10:58 2015 New Revision: 291101 URL: https://svnweb.freebsd.org/changeset/base/291101 Log: MFC r290367, r290370, r290437: Change to not truncate an interface name when -W option is specified. MFC Requested by: Jim Thompson <jim__at__netgate.com> Modified: stable/10/usr.bin/netstat/if.c Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.bin/netstat/if.c ============================================================================== --- stable/10/usr.bin/netstat/if.c Fri Nov 20 15:13:49 2015 (r291100) +++ stable/10/usr.bin/netstat/if.c Fri Nov 20 16:10:58 2015 (r291101) @@ -37,7 +37,7 @@ static char sccsid[] = "@(#)if.c 8.3 (Be #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); -#include <sys/types.h> +#include <sys/param.h> #include <sys/protosw.h> #include <sys/socket.h> #include <sys/socketvar.h> @@ -231,7 +231,8 @@ intpr(int interval, void (*pfunc)(char * { struct ifaddrs *ifap, *ifa; struct ifmaddrs *ifmap, *ifma; - + u_int ifn_len_max = 5; + if (interval) return sidewaysintpr(interval); @@ -240,11 +241,19 @@ intpr(int interval, void (*pfunc)(char * if (aflag && getifmaddrs(&ifmap) != 0) err(EX_OSERR, "getifmaddrs"); + if (Wflag) { + for (ifa = ifap; ifa; ifa = ifa->ifa_next) { + if (interface != NULL && + strcmp(ifa->ifa_name, interface) != 0) + continue; + if (af != AF_UNSPEC && ifa->ifa_addr->sa_family != af) + continue; + ifn_len_max = MAX(ifn_len_max, strlen(ifa->ifa_name)); + } + } + if (!pfunc) { - if (Wflag) - printf("%-7.7s", "Name"); - else - printf("%-5.5s", "Name"); + printf("%-*.*s", ifn_len_max, ifn_len_max, "Name"); printf(" %5.5s %-13.13s %-17.17s %8.8s %5.5s %5.5s", "Mtu", "Network", "Address", "Ipkts", "Ierrs", "Idrop"); if (bflag) @@ -283,10 +292,7 @@ intpr(int interval, void (*pfunc)(char * if (af != AF_UNSPEC && ifa->ifa_addr->sa_family != af) continue; - if (Wflag) - printf("%-7.7s", ifa->ifa_name); - else - printf("%-5.5s", ifa->ifa_name); + printf("%-*.*s", ifn_len_max, ifn_len_max, ifa->ifa_name); #define IFA_MTU(ifa) (((struct if_data *)(ifa)->ifa_data)->ifi_mtu) show_stat("lu", 6, IFA_MTU(ifa), IFA_MTU(ifa), 0);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201511201610.tAKGAw9b035212>