Date: Wed, 22 Sep 2004 16:55:56 -0400 (EDT) From: "J.R. Oldroyd" <jr@opal.com> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/72013: New port: net/pload: display network i/f stats in an X11 window Message-ID: <200409222055.i8MKtu2s038748@linwhf.opal.com> Resent-Message-ID: <200409222100.i8ML0hIS024811@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 72013 >Category: ports >Synopsis: New port: net/pload: display network i/f stats in an X11 window >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Wed Sep 22 21:00:43 GMT 2004 >Closed-Date: >Last-Modified: >Originator: J.R. Oldroyd >Release: FreeBSD 6.0-CURRENT i386 >Organization: >Environment: System: FreeBSD linwhf.opal.com 6.0-CURRENT FreeBSD 6.0-CURRENT #61: Tue Sep 21 12:57:00 EDT 2004 jr@linwhf.opal.com:/usr/src-current/sys/i386/compile/LINWHF i386 >Description: Pload is an X11 program to monitor network device statistics. It graphs information using Athena stripchart widgets. Original author: Matt Smith <mdsmith@engr.utk.edu> WWW: http://www.engr.utk.edu/~mdsmith/pload/ >How-To-Repeat: >Fix: # This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # pload # pload/files # pload/files/patch-ioctl_stats.c # pload/files/patch-pload.c # pload/files/patch-pload.man # pload/files/patch-Imakefile # pload/pkg-descr # pload/Makefile # pload/pkg-plist # pload/distinfo # echo c - pload mkdir -p pload > /dev/null 2>&1 echo c - pload/files mkdir -p pload/files > /dev/null 2>&1 echo x - pload/files/patch-ioctl_stats.c sed 's/^X//' >pload/files/patch-ioctl_stats.c << 'END-of-pload/files/patch-ioctl_stats.c' Xdiff -c ioctl_stat.c.orig ioctl_stat.c X*** ioctl_stat.c.orig Tue Feb 1 02:11:24 2000 X--- ioctl_stat.c Wed Sep 22 14:01:06 2004 X*************** X*** 30,35 **** X--- 30,41 ---- X #include <fcntl.h> /* open */ X #include <sys/ioctl.h> /* ioctl */ X #include <errno.h> X+ #ifdef __FreeBSD__ X+ #include <sys/sysctl.h> X+ #include <sys/socket.h> X+ #include <net/if.h> X+ #include <net/if_mib.h> X+ #endif X X #ifndef STREAMS /* Linux, FreeBSD, NetBSD, Ultrix */ X # include <sys/socket.h> /* socket */ X*************** X*** 84,101 **** X #define ifr_name ifr__name X #endif X X! strncpy(req.ifr_name, ifd->device, sizeof(req.ifr_name)); X! if (ioctl(ifd->s, SIOCGPPPSTATS, &req) != 0) X! { X! /* shouldn't fail if SIOCGIFFLAGS worked... */ X! ifd->in_bytes = 0UL; X! ifd->out_bytes = 0UL; X! return; X } X! X! ifd->in_bytes = (unsigned long)req.stats.p.ppp_ibytes; X! ifd->out_bytes = (unsigned long)req.stats.p.ppp_obytes; X! X return; X } X X--- 90,133 ---- X #define ifr_name ifr__name X #endif X X! #ifdef __FreeBSD__ X! static int if_ix = -1; X! struct ifmibdata ifmd; X! size_t ifmd_sz = sizeof(ifmd); X! int nr_ifs; X! size_t nr_ifs_sz = sizeof(nr_ifs); X! int name[6]; X! int i; X! X! name[0] = CTL_NET; X! name[1] = PF_LINK; X! name[2] = NETLINK_GENERIC; X! name[3] = IFMIB_IFDATA; X! name[5] = IFDATA_GENERAL; X! X! if (if_ix < 0) { X! if (sysctlbyname("net.link.generic.system.ifcount", (void *) &nr_ifs, &nr_ifs_sz, (void *) 0, 0) < 0) { X! return; X! } X! for (i = 1; i <= nr_ifs; i++) { X! name[4] = i; /* row of the ifmib table */ X! X! if (sysctl(name, 6, (void *) &ifmd, &ifmd_sz, (void *) 0, 0) < 0) { X! continue; X! } X! if (strncmp(ifmd.ifmd_name, ifr.ifr_name, strlen(ifr.ifr_name)) == 0) { X! if_ix = i; X! break; X! } X! } X } X! name[4] = if_ix; X! if (sysctl(name, 6, (void *) &ifmd, &ifmd_sz, (void *) 0, 0) >= 0) { X! ifd->in_bytes = ifmd.ifmd_data.ifi_ibytes; X! ifd->out_bytes = ifmd.ifmd_data.ifi_obytes; X! } X! #endif X! X return; X } X END-of-pload/files/patch-ioctl_stats.c echo x - pload/files/patch-pload.c sed 's/^X//' >pload/files/patch-pload.c << 'END-of-pload/files/patch-pload.c' Xdiff -c pload.c.orig pload.c X*** pload.c.orig Tue Feb 1 02:11:24 2000 X--- pload.c Wed Sep 22 13:13:46 2004 X*************** X*** 596,608 **** X void do_total(char *b, double total) X { X if (total < 1024.0) X! sprintf(b, "%s%0.0f b", b, total); X else if (total < (1024.0*1024.0)) X! sprintf(b, "%s%0.2f k", b, total/1024.0); X else if (total < (1024.0*1024.0*1024.0)) X! sprintf(b, "%s%0.2f M", b, total/1024.0/1024.0); X else X! sprintf(b, "%s%0.2f G", b, total/1024.0/1024.0/1024.0); X X return; X } X--- 596,608 ---- X void do_total(char *b, double total) X { X if (total < 1024.0) X! sprintf(b, "%s%0.0f B", b, total); X else if (total < (1024.0*1024.0)) X! sprintf(b, "%s%0.2f kB", b, total/1024.0); X else if (total < (1024.0*1024.0*1024.0)) X! sprintf(b, "%s%0.2f MB", b, total/1024.0/1024.0); X else X! sprintf(b, "%s%0.2f GB", b, total/1024.0/1024.0/1024.0); X X return; X } X*************** X*** 610,622 **** X void do_rate(char *b, double rate) X { X if (rate < 1024.0) X! sprintf(b, "%s%0.0f b/s",b, rate); X else if (rate < (1024.0*1024.0)) X! sprintf(b, "%s%0.2f k/s",b, rate/1024.0); X else if (rate < (1024.0*1024.0*1024.0)) X! sprintf(b, "%s%0.2f M/s",b, rate/1024.0/1024.0); X else X! sprintf(b, "%s%0.2f G/s", b, rate/1024.0/1024.0/1024.0); X return; X } X X--- 610,622 ---- X void do_rate(char *b, double rate) X { X if (rate < 1024.0) X! sprintf(b, "%s%0.0f B/s",b, rate); X else if (rate < (1024.0*1024.0)) X! sprintf(b, "%s%0.2f kB/s",b, rate/1024.0); X else if (rate < (1024.0*1024.0*1024.0)) X! sprintf(b, "%s%0.2f MB/s",b, rate/1024.0/1024.0); X else X! sprintf(b, "%s%0.2f GB/s", b, rate/1024.0/1024.0/1024.0); X return; X } X X*************** X*** 643,648 **** X--- 643,651 ---- X break; X case 'M': X do_rate(buff, max); X+ break; X+ case 'd': X+ sprintf(buff, "%s", resources.device); X break; X case '%': /* literal % */ X i = strlen(buff); END-of-pload/files/patch-pload.c echo x - pload/files/patch-pload.man sed 's/^X//' >pload/files/patch-pload.man << 'END-of-pload/files/patch-pload.man' X--- pload.man.orig Tue Feb 1 02:11:24 2000 X+++ pload.man Wed Sep 22 16:44:12 2004 X@@ -18,7 +18,7 @@ X .TH PLOAD 1 "" "January 2000" X X .SH NAME X-pload \- display ppp throughput statistics in an X window X+pload \- display network interface statistics in an X window X X .SH SYNOPSIS X .ta 6n X@@ -30,9 +30,9 @@ X [-iformat \fIfmt\fP] [-oformat \fIfmt\fP] X X .SH DESCRIPTION X-The \fBpload\fP program displays information about network interface (ppp) statistics. X-Additionally, for Linux 2.2 it can display statistics for any interface that X-reports to /proc/net/dev . X+The \fBpload\fP program displays network throughput statistics in an X window X+Athena stripchart graph. X+On FreeBSD, \fBpload\fP can handle any network interface. X X .SH OPTIONS X .PP X@@ -144,7 +144,7 @@ X .TP 8 X .B \-iformat \fIfmt\fP X Use string \fIfmt\fP for the inbound label. The \fIfmt\fP string will be displayed X-literally with the special tags %t %r and %M expanding to the interface total, current X+literally with the special tags %d %t %r and %M expanding to the interface name, interface total, current X rate, and maximum rate respectively. The default is "%t %r in". X X .TP 8 END-of-pload/files/patch-pload.man echo x - pload/files/patch-Imakefile sed 's/^X//' >pload/files/patch-Imakefile << 'END-of-pload/files/patch-Imakefile' Xdiff -c Imakefile.orig Imakefile X*** Imakefile.orig Tue Feb 1 02:11:24 2000 X--- Imakefile Tue Aug 3 10:02:12 2004 X*************** X*** 15,21 **** X X ComplexProgramTarget(pload) X X! distclean: clean X $(RM) Makefile osdefs.mk core \ X pload-$(VER).tar.gz \ X pload-$(VER)-1.i386.rpm \ X--- 15,21 ---- X X ComplexProgramTarget(pload) X X! distclean:: clean X $(RM) Makefile osdefs.mk core \ X pload-$(VER).tar.gz \ X pload-$(VER)-1.i386.rpm \ END-of-pload/files/patch-Imakefile echo x - pload/pkg-descr sed 's/^X//' >pload/pkg-descr << 'END-of-pload/pkg-descr' XPload is an X11 program to monitor network device statistics. It Xgraphs information using Athena stripchart widgets. X XOriginal author: Matt Smith <mdsmith@engr.utk.edu> X XWWW: http://www.engr.utk.edu/~mdsmith/pload/ X X-jr Xjr@opal.com END-of-pload/pkg-descr echo x - pload/Makefile sed 's/^X//' >pload/Makefile << 'END-of-pload/Makefile' X# New ports collection makefile for: pload X# Date created: 22 Septemper 2004 X# Whom: J.R. Oldroyd <jr@opal.com> X# X# $FreeBSD$ X# X XPORTNAME= pload XPORTVERSION= 0.9.5 XCATEGORIES= net x11 sysutils XMASTER_SITES= http://www.engr.utk.edu/~mdsmith/pload/ X XMAINTAINER= jr@opal.com XCOMMENT= An X11 program to display network traffic graphs X XUSE_X_PREFIX= yes X XMAN1= pload.1 XMANCOMPRESSED= yes X XUSE_IMAKE= yes XHAS_CONFIGURE= yes X X.include <bsd.port.mk> END-of-pload/Makefile echo x - pload/pkg-plist sed 's/^X//' >pload/pkg-plist << 'END-of-pload/pkg-plist' Xbin/pload END-of-pload/pkg-plist echo x - pload/distinfo sed 's/^X//' >pload/distinfo << 'END-of-pload/distinfo' XMD5 (pload-0.9.5.tar.gz) = f109f3984212627f9955d1ac57c7a4f7 XSIZE (pload-0.9.5.tar.gz) = 22423 END-of-pload/distinfo exit >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200409222055.i8MKtu2s038748>