net/wmpload: Add FreeBSD and DragonFly support Patch differentials came from FreeBSD ports. Followed NetBSD's suit with the quad support.diff -r1.8 -r1.9 pkgsrc/net/pload/distinfo
(marino)
@@ -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 | |||
3 | SHA1 (pload-0.9.5.tar.gz) = 52e8ca31ad534cbc131d0bd19ef5ae45b5b37777 | 3 | SHA1 (pload-0.9.5.tar.gz) = 52e8ca31ad534cbc131d0bd19ef5ae45b5b37777 | |
4 | RMD160 (pload-0.9.5.tar.gz) = 48ff961d760430a3a45533f7023b1fefa252ede8 | 4 | RMD160 (pload-0.9.5.tar.gz) = 48ff961d760430a3a45533f7023b1fefa252ede8 | |
5 | Size (pload-0.9.5.tar.gz) = 22423 bytes | 5 | Size (pload-0.9.5.tar.gz) = 22423 bytes | |
6 | SHA1 (patch-aa) = 6a30a15c60e74eeb5312e275b1dac882c86b2420 | 6 | SHA1 (patch-aa) = fb3a59555edfcd59b4930990dacc3dcab42cc462 | |
7 | SHA1 (patch-ab) = 4bf2639b64d20717716c66be85c4fb5cd3b114d5 | 7 | SHA1 (patch-ab) = 4bf2639b64d20717716c66be85c4fb5cd3b114d5 | |
8 | SHA1 (patch-ac) = 345ac88bb5d279039ae0169c2b468b22964a0c09 | 8 | SHA1 (patch-ac) = 401f9e56ed6543968b47d7c61eff40f5019b3959 | |
9 | SHA1 (patch-ad) = 97e7f37561882098b080683237e661f2f5692025 | 9 | SHA1 (patch-ad) = 2613c9344a8545af91ff7476b2fc5ea1e473aabe | |
10 | SHA1 (patch-ae) = d98a346e56d36eb5efd084eef1a95ca6c350c0f5 | 10 | SHA1 (patch-ae) = ef7707633af2c331fcc4d61479346089d443e4e3 |
@@ -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 | ||||
3 | FreeBSD 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 | } |
@@ -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" |
@@ -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*/ |
@@ -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) |