Sat Aug 11 17:20:23 2012 UTC ()
net/wmpload: Add FreeBSD and DragonFly support

Patch differentials came from FreeBSD ports.
Followed NetBSD's suit with the quad support.


(marino)
diff -r1.8 -r1.9 pkgsrc/net/pload/distinfo
diff -r1.4 -r1.5 pkgsrc/net/pload/patches/patch-aa
diff -r1.1 -r1.2 pkgsrc/net/pload/patches/patch-ac
diff -r1.1 -r1.2 pkgsrc/net/pload/patches/patch-ad
diff -r1.1 -r1.2 pkgsrc/net/pload/patches/patch-ae

cvs diff -r1.8 -r1.9 pkgsrc/net/pload/distinfo (expand / switch to unified diff)

--- pkgsrc/net/pload/distinfo 2009/01/04 20:03:21 1.8
+++ pkgsrc/net/pload/distinfo 2012/08/11 17:20:23 1.9
@@ -1,10 +1,10 @@ @@ -1,10 +1,10 @@
1$NetBSD: distinfo,v 1.8 2009/01/04 20:03:21 shattered Exp $ 1$NetBSD: distinfo,v 1.9 2012/08/11 17:20:23 marino Exp $
2 2
3SHA1 (pload-0.9.5.tar.gz) = 52e8ca31ad534cbc131d0bd19ef5ae45b5b37777 3SHA1 (pload-0.9.5.tar.gz) = 52e8ca31ad534cbc131d0bd19ef5ae45b5b37777
4RMD160 (pload-0.9.5.tar.gz) = 48ff961d760430a3a45533f7023b1fefa252ede8 4RMD160 (pload-0.9.5.tar.gz) = 48ff961d760430a3a45533f7023b1fefa252ede8
5Size (pload-0.9.5.tar.gz) = 22423 bytes 5Size (pload-0.9.5.tar.gz) = 22423 bytes
6SHA1 (patch-aa) = 6a30a15c60e74eeb5312e275b1dac882c86b2420 6SHA1 (patch-aa) = fb3a59555edfcd59b4930990dacc3dcab42cc462
7SHA1 (patch-ab) = 4bf2639b64d20717716c66be85c4fb5cd3b114d5 7SHA1 (patch-ab) = 4bf2639b64d20717716c66be85c4fb5cd3b114d5
8SHA1 (patch-ac) = 345ac88bb5d279039ae0169c2b468b22964a0c09 8SHA1 (patch-ac) = 401f9e56ed6543968b47d7c61eff40f5019b3959
9SHA1 (patch-ad) = 97e7f37561882098b080683237e661f2f5692025 9SHA1 (patch-ad) = 2613c9344a8545af91ff7476b2fc5ea1e473aabe
10SHA1 (patch-ae) = d98a346e56d36eb5efd084eef1a95ca6c350c0f5 10SHA1 (patch-ae) = ef7707633af2c331fcc4d61479346089d443e4e3

cvs diff -r1.4 -r1.5 pkgsrc/net/pload/patches/patch-aa (expand / switch to unified diff)

--- pkgsrc/net/pload/patches/patch-aa 2007/12/09 23:41:11 1.4
+++ pkgsrc/net/pload/patches/patch-aa 2012/08/11 17:20:23 1.5
@@ -1,55 +1,134 @@ @@ -1,55 +1,134 @@
1$NetBSD: patch-aa,v 1.4 2007/12/09 23:41:11 wiz Exp $ 1$NetBSD: patch-aa,v 1.5 2012/08/11 17:20:23 marino Exp $
 2
 3FreeBSD changes taken from FreeBSD ports
2 4
3--- ioctl_stat.c.orig 2000-02-01 07:11:24.000000000 +0000 5--- ioctl_stat.c.orig 2000-02-01 07:11:24.000000000 +0000
4+++ ioctl_stat.c 6+++ ioctl_stat.c
5@@ -61,6 +61,10 @@ void getsocket(if_data *ifd) 7@@ -30,6 +30,15 @@
 8 #include <fcntl.h> /* open */
 9 #include <sys/ioctl.h> /* ioctl */
 10 #include <errno.h>
 11+#if defined(__FreeBSD__) || defined(__DragonFly__)
 12+#define __FreeFly__ 1
 13+#endif
 14+#if __FreeFly__
 15+#include <sys/sysctl.h>
 16+#include <sys/socket.h>
 17+#include <net/if.h>
 18+#include <net/if_mib.h>
 19+#endif
 20
 21 #ifndef STREAMS /* Linux, FreeBSD, NetBSD, Ultrix */
 22 # include <sys/socket.h> /* socket */
 23@@ -39,8 +48,10 @@
 24 # include <linux/if_ppp.h>
 25 # else /* most everything else */
 26 # include <net/if.h>
 27+# ifndef __FreeFly__
 28 # include <net/ppp_defs.h>
 29 # include <net/if_ppp.h>
 30+# endif /* FreeBSD | DragonFly */
 31 # endif /* linux && __GLIBC__ < 2 */
 32 #else /* STREAMS */ /* Solaris, SunOS, OSF/1, SVR4 */
 33 # include <net/ppp_defs.h>
 34@@ -61,7 +72,21 @@ void getsocket(if_data *ifd)
6 void ioctl_stat(if_data *ifd) 35 void ioctl_stat(if_data *ifd)
7 { 36 {
8 struct ifreq ifr; 37 struct ifreq ifr;
 38+#if __FreeFly__
 39+ static int if_ix = -1;
 40+ struct ifmibdata ifmd;
 41+ size_t ifmd_sz = sizeof(ifmd);
 42+ int nr_ifs;
 43+ size_t nr_ifs_sz = sizeof(nr_ifs);
 44+ int name[6];
 45+ int i;
 46+#else
9+#ifdef SIOCGIFDATA 47+#ifdef SIOCGIFDATA
10+ struct ifdatareq ifdr; 48+ struct ifdatareq ifdr;
11+ struct if_data * const ifi = &ifdr.ifdr_data; 49+ struct if_data * const ifi = &ifdr.ifdr_data;
12+#endif 50+#endif
13 struct ifpppstatsreq req; 51 struct ifpppstatsreq req;
 52+#endif /* FreeBSD | DragonFly */
14  53
15 if (!ifd->s) getsocket(ifd); 54 if (!ifd->s) getsocket(ifd);
16@@ -84,6 +88,31 @@ void ioctl_stat(if_data *ifd) 55
 56@@ -76,7 +101,9 @@ void ioctl_stat(if_data *ifd)
 57 return;
 58 }
 59
 60+#ifndef __FreeFly__
 61 memset(&req, 0, sizeof(req));
 62+#endif
 63
 64 #ifdef linux
 65 req.stats_ptr = (caddr_t) &req.stats;
 66@@ -84,6 +111,60 @@ void ioctl_stat(if_data *ifd)
17 #define ifr_name ifr__name 67 #define ifr_name ifr__name
18 #endif  68 #endif
19  69
20+#ifdef __NetBSD__ 70+#ifdef __NetBSD__
21+ strncpy(ifr.ifr_name, ifd->device, sizeof(ifr.ifr_name)); 71+ strncpy(ifr.ifr_name, ifd->device, sizeof(ifr.ifr_name));
22+ if (ioctl(ifd->s, SIOCGIFFLAGS, (caddr_t)&ifr) < 0 || 72+ if (ioctl(ifd->s, SIOCGIFFLAGS, (caddr_t)&ifr) < 0 ||
23+ !(ifr.ifr_flags&IFF_UP)) 73+ !(ifr.ifr_flags&IFF_UP))
24+ { 74+ {
25+ /* invalid interface, or interface down */ 75+ /* invalid interface, or interface down */
26+ ifd->in_bytes = 0UL; 76+ ifd->in_bytes = 0UL;
27+ ifd->out_bytes = 0UL; 77+ ifd->out_bytes = 0UL;
28+ return; 78+ return;
29+ } 79+ }
30+#endif 80+#endif
31+ 81+
32+#if defined(__NetBSD__) && defined(SIOCGIFDATA) 82+#if __FreeFly__
 83+ name[0] = CTL_NET;
 84+ name[1] = PF_LINK;
 85+ name[2] = NETLINK_GENERIC;
 86+ name[3] = IFMIB_IFDATA;
 87+ name[5] = IFDATA_GENERAL;
 88+
 89+ if (if_ix < 0) {
 90+ if (sysctlbyname("net.link.generic.system.ifcount", (void *) &nr_ifs, &nr_ifs_sz, (void *) 0, 0) < 0) {
 91+ return;
 92+ }
 93+ for (i = 1; i <= nr_ifs; i++) {
 94+ name[4] = i; /* row of the ifmib table */
 95+
 96+ if (sysctl(name, 6, (void *) &ifmd, &ifmd_sz, (void *) 0, 0) < 0) {
 97+ continue;
 98+ }
 99+ if (strncmp(ifmd.ifmd_name, ifr.ifr_name, strlen(ifr.ifr_name)) == 0) {
 100+ if_ix = i;
 101+ break;
 102+ }
 103+ }
 104+ }
 105+
 106+ name[4] = if_ix;
 107+ if (sysctl(name, 6, (void *) &ifmd, &ifmd_sz, (void *) 0, 0) >= 0) {
 108+ ifd->in_bytes = ifmd.ifmd_data.ifi_ibytes;
 109+ ifd->out_bytes = ifmd.ifmd_data.ifi_obytes;
 110+ }
 111+#elif defined(__NetBSD__) && defined(SIOCGIFDATA)
33+ /* prefer the generic interface statistics over the PPP specific ones */ 112+ /* prefer the generic interface statistics over the PPP specific ones */
34+ strncpy(ifdr.ifdr_name, ifd->device, sizeof(ifdr.ifdr_name)); 113+ strncpy(ifdr.ifdr_name, ifd->device, sizeof(ifdr.ifdr_name));
35+ if (ioctl(ifd->s, SIOCGIFDATA, &ifdr) == -1) 114+ if (ioctl(ifd->s, SIOCGIFDATA, &ifdr) == -1)
36+ { 115+ {
37+ /* non-existent device? */ 116+ /* non-existent device? */
38+ ifd->in_bytes = 0UL; 117+ ifd->in_bytes = 0UL;
39+ ifd->out_bytes = 0UL; 118+ ifd->out_bytes = 0UL;
40+ return; 119+ return;
41+ } 120+ }
42+ ifd->in_bytes = ifi->ifi_ibytes; 121+ ifd->in_bytes = ifi->ifi_ibytes;
43+ ifd->out_bytes = ifi->ifi_obytes; 122+ ifd->out_bytes = ifi->ifi_obytes;
44+#else 123+#else
45 strncpy(req.ifr_name, ifd->device, sizeof(req.ifr_name)); 124 strncpy(req.ifr_name, ifd->device, sizeof(req.ifr_name));
46 if (ioctl(ifd->s, SIOCGPPPSTATS, &req) != 0) 125 if (ioctl(ifd->s, SIOCGPPPSTATS, &req) != 0)
47 { 126 {
48@@ -95,6 +124,7 @@ void ioctl_stat(if_data *ifd) 127@@ -95,6 +176,7 @@ void ioctl_stat(if_data *ifd)
49  128
50 ifd->in_bytes = (unsigned long)req.stats.p.ppp_ibytes; 129 ifd->in_bytes = (unsigned long)req.stats.p.ppp_ibytes;
51 ifd->out_bytes = (unsigned long)req.stats.p.ppp_obytes; 130 ifd->out_bytes = (unsigned long)req.stats.p.ppp_obytes;
52+#endif 131+#endif
53  132
54 return; 133 return;
55 } 134 }

cvs diff -r1.1 -r1.2 pkgsrc/net/pload/patches/patch-ac (expand / switch to unified diff)

--- pkgsrc/net/pload/patches/patch-ac 2002/01/29 13:46:54 1.1
+++ pkgsrc/net/pload/patches/patch-ac 2012/08/11 17:20:23 1.2
@@ -1,13 +1,23 @@ @@ -1,13 +1,23 @@
1$NetBSD: patch-ac,v 1.1 2002/01/29 13:46:54 wiz Exp $ 1$NetBSD: patch-ac,v 1.2 2012/08/11 17:20:23 marino Exp $
2 2
3--- configure.orig Thu Mar 4 08:33:03 1999 3--- configure.orig 2000-02-01 07:11:24.000000000 +0000
4+++ configure 4+++ configure
5@@ -60,7 +60,7 @@ 5@@ -17,6 +17,9 @@ case $system in
 6 echo "enabling proc stats reading";
 7 fi
 8 ;;
 9+ DragonFly)
 10+ os="dragonfly";
 11+ ;;
 12 FreeBSD)
 13 os="freebsd";
 14 ;;
 15@@ -62,7 +65,7 @@ else
6 # is this proper sed syntax? 16 # is this proper sed syntax?
7 echo "OBJS=`echo $common_src $sys_src | sed s/'\.c'/'\.o'/g`" >> osdefs.mk 17 echo "OBJS=`echo $common_src $sys_src | sed s/'\.c'/'\.o'/g`" >> osdefs.mk
8  18
9- xmkmf && make depend && \ 19- xmkmf && make depend && \
10+ (pkgxmkmf || xmkmf) && make depend && \ 20+ (pkgxmkmf || xmkmf) && make depend && \
11 echo "configured for $os" && \ 21 echo "configured for $os" && \
12 echo "type \"make\" to build" && \ 22 echo "type \"make\" to build" && \
13 echo "type \"make install ; make install.man\" to install" 23 echo "type \"make install ; make install.man\" to install"

cvs diff -r1.1 -r1.2 pkgsrc/net/pload/patches/patch-ad (expand / switch to unified diff)

--- pkgsrc/net/pload/patches/patch-ad 2009/01/04 20:03:21 1.1
+++ pkgsrc/net/pload/patches/patch-ad 2012/08/11 17:20:23 1.2
@@ -1,22 +1,22 @@ @@ -1,22 +1,22 @@
1$NetBSD: patch-ad,v 1.1 2009/01/04 20:03:21 shattered Exp $ 1$NetBSD: patch-ad,v 1.2 2012/08/11 17:20:23 marino Exp $
2 2
3--- pload.h.orig 2000-02-01 07:11:24.000000000 +0000 3--- pload.h.orig 2000-02-01 07:11:24.000000000 +0000
4+++ pload.h 4+++ pload.h
5@@ -35,10 +35,17 @@ struct if_dat 5@@ -35,10 +35,17 @@ struct if_dat
6 #ifdef LINUXPROC 6 #ifdef LINUXPROC
7 FILE *file; /* /proc/net/dev */ 7 FILE *file; /* /proc/net/dev */
8 #endif  8 #endif
9+#ifdef __NetBSD__ 9+#if defined(__NetBSD__) || defined(__DragonFly__)
10+ u_quad_t in_bytes; /* total bytes in */ 10+ u_quad_t in_bytes; /* total bytes in */
11+ u_quad_t in_bytes_old; /* last total bytes in */ 11+ u_quad_t in_bytes_old; /* last total bytes in */
12+ u_quad_t out_bytes; /* total bytes out */ 12+ u_quad_t out_bytes; /* total bytes out */
13+ u_quad_t out_bytes_old; /* last total byts out */ 13+ u_quad_t out_bytes_old; /* last total byts out */
14+#else 14+#else
15 unsigned long in_bytes; /* total bytes in */ 15 unsigned long in_bytes; /* total bytes in */
16 unsigned long in_bytes_old; /* last total bytes in */ 16 unsigned long in_bytes_old; /* last total bytes in */
17 unsigned long out_bytes; /* total bytes out */ 17 unsigned long out_bytes; /* total bytes out */
18 unsigned long out_bytes_old; /* last total byts out */ 18 unsigned long out_bytes_old; /* last total byts out */
19+#endif 19+#endif
20 struct timeval prev_time; /* last time */ 20 struct timeval prev_time; /* last time */
21 struct timeval curr_time; /* time now */ 21 struct timeval curr_time; /* time now */
22 int history_size; /* # pts to average over*/ 22 int history_size; /* # pts to average over*/

cvs diff -r1.1 -r1.2 pkgsrc/net/pload/patches/patch-ae (expand / switch to unified diff)

--- pkgsrc/net/pload/patches/patch-ae 2009/01/04 20:03:21 1.1
+++ pkgsrc/net/pload/patches/patch-ae 2012/08/11 17:20:23 1.2
@@ -1,22 +1,22 @@ @@ -1,22 +1,22 @@
1$NetBSD: patch-ae,v 1.1 2009/01/04 20:03:21 shattered Exp $ 1$NetBSD: patch-ae,v 1.2 2012/08/11 17:20:23 marino Exp $
2 2
3--- pload.c.orig 2000-02-01 07:11:24.000000000 +0000 3--- pload.c.orig 2000-02-01 07:11:24.000000000 +0000
4+++ pload.c 4+++ pload.c
5@@ -40,7 +40,11 @@ static void HandleExit(void); 5@@ -40,7 +40,11 @@ static void HandleExit(void);
6 static void CheckForWMExit(Widget, XtPointer, XEvent*, Boolean*); 6 static void CheckForWMExit(Widget, XtPointer, XEvent*, Boolean*);
7 static void CheckForIconState(Widget, XtPointer, XEvent*, Boolean*); 7 static void CheckForIconState(Widget, XtPointer, XEvent*, Boolean*);
8 static void update(XtPointer, XtIntervalId*); 8 static void update(XtPointer, XtIntervalId*);
9+#ifdef __NetBSD__ 9+#if defined(__NetBSD__) || defined(__DragonFly__)
10+static void make_label(char*,u_quad_t,double,double); 10+static void make_label(char*,u_quad_t,double,double);
11+#else 11+#else
12 static void make_label(char*,unsigned long,double,double); 12 static void make_label(char*,unsigned long,double,double);
13+#endif 13+#endif
14 static void do_rate(char*,double); 14 static void do_rate(char*,double);
15 static void do_total(char*, double); 15 static void do_total(char*, double);
16  16
17@@ -621,7 +625,11 @@ void do_rate(char *b, double rate) 17@@ -621,7 +625,11 @@ void do_rate(char *b, double rate)
18 } 18 }
19  19
20 /* stores label in global 'buff' */ 20 /* stores label in global 'buff' */
21+#ifdef __NetBSD__ 21+#ifdef __NetBSD__
22+void make_label(char *fmt, u_quad_t total, double rate, double max) 22+void make_label(char *fmt, u_quad_t total, double rate, double max)