# 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 /* open */ X #include /* ioctl */ X #include X+ #ifdef __FreeBSD__ X+ #include X+ #include X+ #include X+ #include X+ #endif X X #ifndef STREAMS /* Linux, FreeBSD, NetBSD, Ultrix */ X # include /* 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 X XWWW: http://www.engr.utk.edu/~mdsmith/pload/ X X-jr Xfbsd@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 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= fbsd@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 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