Date: Sun, 31 Mar 1996 11:33:09 -0600 From: Alex Nash <alex@zen.nash.org> To: bugs@freebsd.org Subject: netstat output bug Message-ID: <199603311733.LAA12210@zen.nash.org>
next in thread | raw e-mail | index | archive | help
[I tried to use send-pr, but I got: send-pr: could not read /usr/local/lib/gnats/FreeBSD for categories list. I looked in the FAQ, Handbook, www.freebsd.org, ftp.cdrom.com and didn't find a way to make this work. What did I miss?] OS Version: 2.1.0-RELEASE Bug severity: Minor Program: /usr/bin/netstat Submitted by: Alex Nash (nash@mcs.com) Problem: netstat's interface display option prints many unsigned long values as signed ints (this is especially noticeable when using the -b option). Suggested Fix: Apply the following patch to /usr/src/usr.bin/netstat/if.c: diff -c netstat/if.c netstat-2.1.0-RELEASE/if.c *** netstat/if.c Sun Mar 31 02:19:42 1996 --- netstat-2.1.0-RELEASE/if.c Tue Mar 26 18:28:15 1996 *************** *** 116,122 **** return; tname[15] = '\0'; ifnetaddr = (u_long)ifnet.if_next; ! snprintf(name, 32, "%s%hd", tname, ifnet.if_unit); if (interface != 0 && (strcmp(name, interface) != 0)) continue; cp = index(name, '\0'); --- 116,122 ---- return; tname[15] = '\0'; ifnetaddr = (u_long)ifnet.if_next; ! snprintf(name, 32, "%s%d", tname, ifnet.if_unit); if (interface != 0 && (strcmp(name, interface) != 0)) continue; cp = index(name, '\0'); *************** *** 125,131 **** *cp = '\0'; ifaddraddr = (u_long)ifnet.if_addrlist; } ! printf("%-5.5s %-5lu ", name, ifnet.if_mtu); if (ifaddraddr == 0) { printf("%-11.11s ", "none"); printf("%-15.15s ", "none"); --- 125,131 ---- *cp = '\0'; ifaddraddr = (u_long)ifnet.if_addrlist; } ! printf("%-5.5s %-5d ", name, ifnet.if_mtu); if (ifaddraddr == 0) { printf("%-11.11s ", "none"); printf("%-15.15s ", "none"); *************** *** 201,217 **** } ifaddraddr = (u_long)ifaddr.ifa.ifa_next; } ! printf("%8lu %5lu ", ifnet.if_ipackets, ifnet.if_ierrors); if (bflag) ! printf("%10lu ", ifnet.if_ibytes); ! printf("%8lu %5lu ", ifnet.if_opackets, ifnet.if_oerrors); if (bflag) ! printf("%10lu ", ifnet.if_obytes); ! printf("%5lu", ifnet.if_collisions); if (tflag) ! printf(" %3hd", ifnet.if_timer); if (dflag) printf(" %3d", ifnet.if_snd.ifq_drops); putchar('\n'); --- 201,217 ---- } ifaddraddr = (u_long)ifaddr.ifa.ifa_next; } ! printf("%8d %5d ", ifnet.if_ipackets, ifnet.if_ierrors); if (bflag) ! printf("%10d ", ifnet.if_ibytes); ! printf("%8d %5d ", ifnet.if_opackets, ifnet.if_oerrors); if (bflag) ! printf("%10d ", ifnet.if_obytes); ! printf("%5d", ifnet.if_collisions); if (tflag) ! printf(" %3d", ifnet.if_timer); if (dflag) printf(" %3d", ifnet.if_snd.ifq_drops); putchar('\n'); *************** *** 266,272 **** if (kread((u_long)ifnet.if_name, tname, 16)) break; tname[15] = '\0'; ! snprintf(name, 16, "%s%hd", tname, ifnet.if_unit); if (interface && strcmp(name, interface) == 0) interesting = ip; snprintf(ip->ift_name, 16, "(%s)", name);; --- 266,272 ---- if (kread((u_long)ifnet.if_name, tname, 16)) break; tname[15] = '\0'; ! snprintf(name, 16, "%s%d", tname, ifnet.if_unit); if (interface && strcmp(name, interface) == 0) interesting = ip; snprintf(ip->ift_name, 16, "(%s)", name);; *************** *** 338,354 **** continue; } if (ip == interesting) { ! printf("%8lu %5lu ", ifnet.if_ipackets - ip->ift_ip, ifnet.if_ierrors - ip->ift_ie); if (bflag) ! printf("%10lu ", ifnet.if_ibytes - ip->ift_ib); ! printf("%8lu %5lu ", ifnet.if_opackets - ip->ift_op, ifnet.if_oerrors - ip->ift_oe); if (bflag) ! printf("%10lu ", ifnet.if_obytes - ip->ift_ob); ! printf("%5lu", ifnet.if_collisions - ip->ift_co); if (dflag) printf(" %5u", ifnet.if_snd.ifq_drops - ip->ift_dr); --- 338,354 ---- continue; } if (ip == interesting) { ! printf("%8u %5u ", ifnet.if_ipackets - ip->ift_ip, ifnet.if_ierrors - ip->ift_ie); if (bflag) ! printf("%10u ", ifnet.if_ibytes - ip->ift_ib); ! printf("%8u %5u ", ifnet.if_opackets - ip->ift_op, ifnet.if_oerrors - ip->ift_oe); if (bflag) ! printf("%10u ", ifnet.if_obytes - ip->ift_ob); ! printf("%5u", ifnet.if_collisions - ip->ift_co); if (dflag) printf(" %5u", ifnet.if_snd.ifq_drops - ip->ift_dr);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199603311733.LAA12210>