head 1.5; access; symbols pkgsrc-2026Q1:1.5.0.110 pkgsrc-2026Q1-base:1.5 pkgsrc-2025Q4:1.5.0.108 pkgsrc-2025Q4-base:1.5 pkgsrc-2025Q3:1.5.0.106 pkgsrc-2025Q3-base:1.5 pkgsrc-2025Q2:1.5.0.104 pkgsrc-2025Q2-base:1.5 pkgsrc-2025Q1:1.5.0.102 pkgsrc-2025Q1-base:1.5 pkgsrc-2024Q4:1.5.0.100 pkgsrc-2024Q4-base:1.5 pkgsrc-2024Q3:1.5.0.98 pkgsrc-2024Q3-base:1.5 pkgsrc-2024Q2:1.5.0.96 pkgsrc-2024Q2-base:1.5 pkgsrc-2024Q1:1.5.0.94 pkgsrc-2024Q1-base:1.5 pkgsrc-2023Q4:1.5.0.92 pkgsrc-2023Q4-base:1.5 pkgsrc-2023Q3:1.5.0.90 pkgsrc-2023Q3-base:1.5 pkgsrc-2023Q2:1.5.0.88 pkgsrc-2023Q2-base:1.5 pkgsrc-2023Q1:1.5.0.86 pkgsrc-2023Q1-base:1.5 pkgsrc-2022Q4:1.5.0.84 pkgsrc-2022Q4-base:1.5 pkgsrc-2022Q3:1.5.0.82 pkgsrc-2022Q3-base:1.5 pkgsrc-2022Q2:1.5.0.80 pkgsrc-2022Q2-base:1.5 pkgsrc-2022Q1:1.5.0.78 pkgsrc-2022Q1-base:1.5 pkgsrc-2021Q4:1.5.0.76 pkgsrc-2021Q4-base:1.5 pkgsrc-2021Q3:1.5.0.74 pkgsrc-2021Q3-base:1.5 pkgsrc-2021Q2:1.5.0.72 pkgsrc-2021Q2-base:1.5 pkgsrc-2021Q1:1.5.0.70 pkgsrc-2021Q1-base:1.5 pkgsrc-2020Q4:1.5.0.68 pkgsrc-2020Q4-base:1.5 pkgsrc-2020Q3:1.5.0.66 pkgsrc-2020Q3-base:1.5 pkgsrc-2020Q2:1.5.0.62 pkgsrc-2020Q2-base:1.5 pkgsrc-2020Q1:1.5.0.42 pkgsrc-2020Q1-base:1.5 pkgsrc-2019Q4:1.5.0.64 pkgsrc-2019Q4-base:1.5 pkgsrc-2019Q3:1.5.0.60 pkgsrc-2019Q3-base:1.5 pkgsrc-2019Q2:1.5.0.58 pkgsrc-2019Q2-base:1.5 pkgsrc-2019Q1:1.5.0.56 pkgsrc-2019Q1-base:1.5 pkgsrc-2018Q4:1.5.0.54 pkgsrc-2018Q4-base:1.5 pkgsrc-2018Q3:1.5.0.52 pkgsrc-2018Q3-base:1.5 pkgsrc-2018Q2:1.5.0.50 pkgsrc-2018Q2-base:1.5 pkgsrc-2018Q1:1.5.0.48 pkgsrc-2018Q1-base:1.5 pkgsrc-2017Q4:1.5.0.46 pkgsrc-2017Q4-base:1.5 pkgsrc-2017Q3:1.5.0.44 pkgsrc-2017Q3-base:1.5 pkgsrc-2017Q2:1.5.0.40 pkgsrc-2017Q2-base:1.5 pkgsrc-2017Q1:1.5.0.38 pkgsrc-2017Q1-base:1.5 pkgsrc-2016Q4:1.5.0.36 pkgsrc-2016Q4-base:1.5 pkgsrc-2016Q3:1.5.0.34 pkgsrc-2016Q3-base:1.5 pkgsrc-2016Q2:1.5.0.32 pkgsrc-2016Q2-base:1.5 pkgsrc-2016Q1:1.5.0.30 pkgsrc-2016Q1-base:1.5 pkgsrc-2015Q4:1.5.0.28 pkgsrc-2015Q4-base:1.5 pkgsrc-2015Q3:1.5.0.26 pkgsrc-2015Q3-base:1.5 pkgsrc-2015Q2:1.5.0.24 pkgsrc-2015Q2-base:1.5 pkgsrc-2015Q1:1.5.0.22 pkgsrc-2015Q1-base:1.5 pkgsrc-2014Q4:1.5.0.20 pkgsrc-2014Q4-base:1.5 pkgsrc-2014Q3:1.5.0.18 pkgsrc-2014Q3-base:1.5 pkgsrc-2014Q2:1.5.0.16 pkgsrc-2014Q2-base:1.5 pkgsrc-2014Q1:1.5.0.14 pkgsrc-2014Q1-base:1.5 pkgsrc-2013Q4:1.5.0.12 pkgsrc-2013Q4-base:1.5 pkgsrc-2013Q3:1.5.0.10 pkgsrc-2013Q3-base:1.5 pkgsrc-2013Q2:1.5.0.8 pkgsrc-2013Q2-base:1.5 pkgsrc-2013Q1:1.5.0.6 pkgsrc-2013Q1-base:1.5 pkgsrc-2012Q4:1.5.0.4 pkgsrc-2012Q4-base:1.5 pkgsrc-2012Q3:1.5.0.2 pkgsrc-2012Q3-base:1.5 pkgsrc-2012Q2:1.4.0.66 pkgsrc-2012Q2-base:1.4 pkgsrc-2012Q1:1.4.0.64 pkgsrc-2012Q1-base:1.4 pkgsrc-2011Q4:1.4.0.62 pkgsrc-2011Q4-base:1.4 pkgsrc-2011Q3:1.4.0.60 pkgsrc-2011Q3-base:1.4 pkgsrc-2011Q2:1.4.0.58 pkgsrc-2011Q2-base:1.4 pkgsrc-2011Q1:1.4.0.56 pkgsrc-2011Q1-base:1.4 pkgsrc-2010Q4:1.4.0.54 pkgsrc-2010Q4-base:1.4 pkgsrc-2010Q3:1.4.0.52 pkgsrc-2010Q3-base:1.4 pkgsrc-2010Q2:1.4.0.50 pkgsrc-2010Q2-base:1.4 pkgsrc-2010Q1:1.4.0.48 pkgsrc-2010Q1-base:1.4 pkgsrc-2009Q4:1.4.0.46 pkgsrc-2009Q4-base:1.4 pkgsrc-2009Q3:1.4.0.44 pkgsrc-2009Q3-base:1.4 pkgsrc-2009Q2:1.4.0.42 pkgsrc-2009Q2-base:1.4 pkgsrc-2009Q1:1.4.0.40 pkgsrc-2009Q1-base:1.4 pkgsrc-2008Q4:1.4.0.38 pkgsrc-2008Q4-base:1.4 pkgsrc-2008Q3:1.4.0.36 pkgsrc-2008Q3-base:1.4 cube-native-xorg:1.4.0.34 cube-native-xorg-base:1.4 pkgsrc-2008Q2:1.4.0.32 pkgsrc-2008Q2-base:1.4 cwrapper:1.4.0.30 pkgsrc-2008Q1:1.4.0.28 pkgsrc-2008Q1-base:1.4 pkgsrc-2007Q4:1.4.0.26 pkgsrc-2007Q4-base:1.4 pkgsrc-2007Q3:1.4.0.24 pkgsrc-2007Q3-base:1.4 pkgsrc-2007Q2:1.4.0.22 pkgsrc-2007Q2-base:1.4 pkgsrc-2007Q1:1.4.0.20 pkgsrc-2007Q1-base:1.4 pkgsrc-2006Q4:1.4.0.18 pkgsrc-2006Q4-base:1.4 pkgsrc-2006Q3:1.4.0.16 pkgsrc-2006Q3-base:1.4 pkgsrc-2006Q2:1.4.0.14 pkgsrc-2006Q2-base:1.4 pkgsrc-2006Q1:1.4.0.12 pkgsrc-2006Q1-base:1.4 pkgsrc-2005Q4:1.4.0.10 pkgsrc-2005Q4-base:1.4 pkgsrc-2005Q3:1.4.0.8 pkgsrc-2005Q3-base:1.4 pkgsrc-2005Q2:1.4.0.6 pkgsrc-2005Q2-base:1.4 pkgsrc-2005Q1:1.4.0.4 pkgsrc-2005Q1-base:1.4 pkgsrc-2004Q4:1.4.0.2 pkgsrc-2004Q4-base:1.4 pkgsrc-2004Q3:1.3.0.14 pkgsrc-2004Q3-base:1.3 pkgsrc-2004Q2:1.3.0.12 pkgsrc-2004Q2-base:1.3 pkgsrc-2004Q1:1.3.0.10 pkgsrc-2004Q1-base:1.3 pkgsrc-2003Q4:1.3.0.8 pkgsrc-2003Q4-base:1.3 netbsd-1-6-1:1.3.0.4 netbsd-1-6-1-base:1.3 netbsd-1-6:1.3.0.6 netbsd-1-6-RELEASE-base:1.3 pkgviews:1.3.0.2 pkgviews-base:1.3 buildlink2:1.2.0.2 buildlink2-base:1.3 netbsd-1-5-PATCH003:1.2 netbsd-1-5-PATCH001:1.1.1.1 netbsd-1-5-RELEASE:1.1.1.1 netbsd-1-4-PATCH003:1.1.1.1 netbsd-1-4-PATCH002:1.1.1.1 pkgsrc-base:1.1.1.1 TNF:1.1.1; locks; strict; comment @# @; 1.5 date 2012.08.11.17.22.18; author marino; state Exp; branches; next 1.4; 1.4 date 2004.11.27.00.15.30; author abs; state Exp; branches; next 1.3; 1.3 date 2002.05.24.18.27.17; author martin; state Exp; branches; next 1.2; 1.2 date 2001.07.22.16.52.30; author wiz; state Exp; branches 1.2.2.1; next 1.1; 1.1 date 2000.01.25.10.54.55; author abs; state Exp; branches 1.1.1.1; next ; 1.2.2.1 date 2002.06.23.18.57.19; author jlam; state Exp; branches; next ; 1.1.1.1 date 2000.01.25.10.54.55; author abs; state Exp; branches; next ; desc @@ 1.5 log @net/pload: Add FreeBSD and DragonFly support Patch differentials came from FreeBSD ports. @ text @$NetBSD$ --- ioctl_stat.c.orig 2000-02-01 07:49:01.000000000 +0000 +++ ioctl_stat.c @@@@ -30,6 +30,15 @@@@ #include /* open */ #include /* ioctl */ #include +#if defined(__FreeBSD__) || defined(__DragonFly__) +#define __FreeFly__ 1 +#endif +#if __FreeFly__ +#include +#include +#include +#include +#endif #ifndef STREAMS /* Linux, FreeBSD, NetBSD, Ultrix */ # include /* socket */ @@@@ -39,8 +48,10 @@@@ # include # else /* most everything else */ # include +# ifndef __FreeFly__ # include # include +# endif /* FreeBSD | DragonFly */ # endif /* linux && __GLIBC__ < 2 */ #else /* STREAMS */ /* Solaris, SunOS, OSF/1, SVR4 */ # include @@@@ -61,7 +72,21 @@@@ void getsocket(if_data *ifd) void ioctl_stat(if_data *ifd) { struct ifreq ifr; +#if __FreeFly__ + static int if_ix = -1; + struct ifmibdata ifmd; + size_t ifmd_sz = sizeof(ifmd); + int nr_ifs; + size_t nr_ifs_sz = sizeof(nr_ifs); + int name[6]; + int i; +#else +#ifdef SIOCGIFDATA + struct ifdatareq ifdr; + struct if_data * const ifi = &ifdr.ifdr_data; +#endif struct ifpppstatsreq req; +#endif /* FreeBSD | DragonFly */ if (!ifd->s) getsocket(ifd); @@@@ -76,7 +101,9 @@@@ void ioctl_stat(if_data *ifd) return; } +#ifndef __FreeFly__ memset(&req, 0, sizeof(req)); +#endif #ifdef linux req.stats_ptr = (caddr_t) &req.stats; @@@@ -84,6 +111,48 @@@@ void ioctl_stat(if_data *ifd) #define ifr_name ifr__name #endif +#if __FreeFly__ + name[0] = CTL_NET; + name[1] = PF_LINK; + name[2] = NETLINK_GENERIC; + name[3] = IFMIB_IFDATA; + name[5] = IFDATA_GENERAL; + + if (if_ix < 0) { + if (sysctlbyname("net.link.generic.system.ifcount", (void *) &nr_ifs, &nr_ifs_sz, (void *) 0, 0) < 0) { + return; + } + for (i = 1; i <= nr_ifs; i++) { + name[4] = i; /* row of the ifmib table */ + + if (sysctl(name, 6, (void *) &ifmd, &ifmd_sz, (void *) 0, 0) < 0) { + continue; + } + if (strncmp(ifmd.ifmd_name, ifr.ifr_name, strlen(ifr.ifr_name)) == 0) { + if_ix = i; + break; + } + } + } + + name[4] = if_ix; + if (sysctl(name, 6, (void *) &ifmd, &ifmd_sz, (void *) 0, 0) >= 0) { + ifd->in_bytes = ifmd.ifmd_data.ifi_ibytes; + ifd->out_bytes = ifmd.ifmd_data.ifi_obytes; + } +#elif defined(SIOCGIFDATA) + /* prefer generic interface statistics over PPP specific ones */ + strncpy(ifdr.ifdr_name, ifd->device, sizeof(ifdr.ifdr_name)); + if (ioctl(ifd->s, SIOCGIFDATA, &ifdr) == -1) + { + /* non-existant device? */ + ifd->in_bytes = 0UL; + ifd->out_bytes = 0UL; + return; + } + ifd->in_bytes = (unsigned long)ifi->ifi_ibytes; + ifd->out_bytes = (unsigned long)ifi->ifi_obytes; +#else strncpy(req.ifr_name, ifd->device, sizeof(req.ifr_name)); if (ioctl(ifd->s, SIOCGPPPSTATS, &req) != 0) { @@@@ -95,6 +164,7 @@@@ void ioctl_stat(if_data *ifd) ifd->in_bytes = (unsigned long)req.stats.p.ppp_ibytes; ifd->out_bytes = (unsigned long)req.stats.p.ppp_obytes; +#endif return; } @ 1.4 log @Update wmpload to 0.95. Changelog since 0.9.4 0.9.5 : - Added user customizable text labels. - Added manual page. @ text @d1 1 a1 1 $NetBSD: patch-aa,v 1.3 2002/05/24 18:27:17 martin Exp $ d5 29 a33 1 @@@@ -62,6 +62,10 @@@@ void ioctl_stat(if_data *ifd) d36 10 a45 2 struct ifpppstatsreq req; +#ifdef SIOCGIFDATA /* Supported on at least NetBSD */ d47 1 a47 1 + struct if_data * const ifi = &ifdr.ifdr_data; d49 2 d54 11 a64 1 @@@@ -84,6 +88,19 @@@@ void ioctl_stat(if_data *ifd) d68 30 a97 1 +#if defined(SIOCGIFDATA) d113 1 a113 1 @@@@ -95,6 +112,7 @@@@ void ioctl_stat(if_data *ifd) @ 1.3 log @Use the SIOCGIFDATA ioctl if available to make the tool usefull for any kind of interface, not just PPP interfaces. @ text @d1 1 a1 1 $NetBSD: patch-aa,v 1.2 2001/07/22 16:52:30 wiz Exp $ d3 3 a5 5 --- ioctl_stat.c.orig Sat Dec 18 02:35:12 1999 +++ ioctl_stat.c Fri May 24 20:22:27 2002 @@@@ -68,6 +68,13 @@@@ void ioctl_stat(if_data *ifd) d7 3 a9 3 +#ifdef __NetBSD__ + struct ifreq ifr; +#ifdef SIOCGIFDATA d11 1 a11 1 + struct if_data * const ifi = &ifdr.ifdr_data; a12 2 +#endif struct ifpppstatsreq req; d14 8 a21 19 if (s < 0) getsocket(); @@@@ -79,6 +86,31 @@@@ req.stats_ptr = (caddr_t) &req.stats; #endif /* sprintf(req.ifr_name, ifd->device); */ +#ifdef __NetBSD__ + strncpy(ifr.ifr_name, ifd->device, sizeof(ifr.ifr_name)); + if (ioctl(s, SIOCGIFFLAGS, (caddr_t)&ifr) < 0 || + !(ifr.ifr_flags&IFF_UP)) + { + /* invalid interface, or interface down */ + ifd->in_bytes = 0UL; + ifd->out_bytes = 0UL; + return; + } +#endif + +#if defined(__NetBSD__) && defined(SIOCGIFDATA) + /* prefere the generic interface statistics over the PPP specific ones */ d23 1 a23 1 + if (ioctl(s, SIOCGIFDATA, &ifdr) == -1) d34 3 a36 3 if (ioctl(s, SIOCGPPPSTATS, &req) != 0) @@@@ -91,6 +123,7 @@@@ @ 1.2 log @Remove distclean target that made trouble, as noted in recent bulk build. Standardize patch-aa while I'm here. @ text @d1 1 a1 1 $NetBSD$ d4 2 a5 2 +++ ioctl_stat.c @@@@ -68,6 +68,9 @@@@ d11 4 d19 1 a19 1 @@@@ -79,8 +82,20 @@@@ a22 2 - strncpy(req.ifr_name, ifd->device, sizeof(req.ifr_name)); d24 1 a24 1 + snprintf(ifr.ifr_name, sizeof(req.ifr_name), ifd->device); d35 15 a49 1 + strncpy(req.ifr_name, ifd->device, sizeof(req.ifr_name)); d51 8 a58 2 { /* non-existant device? */ @ 1.2.2.1 log @Merge from pkgsrc-current to buildlink2 branch. @ text @d1 1 a1 1 $NetBSD: patch-aa,v 1.3 2002/05/24 18:27:17 martin Exp $ d4 2 a5 2 +++ ioctl_stat.c Fri May 24 20:22:27 2002 @@@@ -68,6 +68,13 @@@@ a10 4 +#ifdef SIOCGIFDATA + struct ifdatareq ifdr; + struct if_data * const ifi = &ifdr.ifdr_data; +#endif d15 1 a15 1 @@@@ -79,6 +86,31 @@@@ d19 2 d22 1 a22 1 + strncpy(ifr.ifr_name, ifd->device, sizeof(ifr.ifr_name)); d33 1 a33 15 +#if defined(__NetBSD__) && defined(SIOCGIFDATA) + /* prefere the generic interface statistics over the PPP specific ones */ + strncpy(ifdr.ifdr_name, ifd->device, sizeof(ifdr.ifdr_name)); + if (ioctl(s, SIOCGIFDATA, &ifdr) == -1) + { + /* non-existant device? */ + ifd->in_bytes = 0UL; + ifd->out_bytes = 0UL; + return; + } + ifd->in_bytes = (unsigned long)ifi->ifi_ibytes; + ifd->out_bytes = (unsigned long)ifi->ifi_obytes; +#else strncpy(req.ifr_name, ifd->device, sizeof(req.ifr_name)); d35 2 a36 8 @@@@ -91,6 +123,7 @@@@ ifd->in_bytes = (unsigned long)req.stats.p.ppp_ibytes; ifd->out_bytes = (unsigned long)req.stats.p.ppp_obytes; +#endif return; } @ 1.1 log @Initial revision @ text @d3 2 a4 2 --- ioctl_stat.c Sat Dec 18 01:35:12 1999 +++ /tmp/ioctl_stat.c Tue Jan 25 10:32:46 2000 @ 1.1.1.1 log @Adding pkackage for wmpload-0.9.4 wmpload is a variation of pload, displaying ppp network device usage in a 64x64 pixel square. Wmpload was designed to be docked into the Window Maker dock but can be used with any window manager. @ text @@