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.42 pkgsrc-2012Q2-base:1.4 pkgsrc-2012Q1:1.4.0.40 pkgsrc-2012Q1-base:1.4 pkgsrc-2011Q4:1.4.0.38 pkgsrc-2011Q4-base:1.4 pkgsrc-2011Q3:1.4.0.36 pkgsrc-2011Q3-base:1.4 pkgsrc-2011Q2:1.4.0.34 pkgsrc-2011Q2-base:1.4 pkgsrc-2011Q1:1.4.0.32 pkgsrc-2011Q1-base:1.4 pkgsrc-2010Q4:1.4.0.30 pkgsrc-2010Q4-base:1.4 pkgsrc-2010Q3:1.4.0.28 pkgsrc-2010Q3-base:1.4 pkgsrc-2010Q2:1.4.0.26 pkgsrc-2010Q2-base:1.4 pkgsrc-2010Q1:1.4.0.24 pkgsrc-2010Q1-base:1.4 pkgsrc-2009Q4:1.4.0.22 pkgsrc-2009Q4-base:1.4 pkgsrc-2009Q3:1.4.0.20 pkgsrc-2009Q3-base:1.4 pkgsrc-2009Q2:1.4.0.18 pkgsrc-2009Q2-base:1.4 pkgsrc-2009Q1:1.4.0.16 pkgsrc-2009Q1-base:1.4 pkgsrc-2008Q4:1.4.0.14 pkgsrc-2008Q4-base:1.4 pkgsrc-2008Q3:1.4.0.12 pkgsrc-2008Q3-base:1.4 cube-native-xorg:1.4.0.10 cube-native-xorg-base:1.4 pkgsrc-2008Q2:1.4.0.8 pkgsrc-2008Q2-base:1.4 cwrapper:1.4.0.6 pkgsrc-2008Q1:1.4.0.4 pkgsrc-2008Q1-base:1.4 pkgsrc-2007Q4:1.4.0.2 pkgsrc-2007Q4-base:1.4 pkgsrc-2007Q3:1.3.0.38 pkgsrc-2007Q3-base:1.3 pkgsrc-2007Q2:1.3.0.36 pkgsrc-2007Q2-base:1.3 pkgsrc-2007Q1:1.3.0.34 pkgsrc-2007Q1-base:1.3 pkgsrc-2006Q4:1.3.0.32 pkgsrc-2006Q4-base:1.3 pkgsrc-2006Q3:1.3.0.30 pkgsrc-2006Q3-base:1.3 pkgsrc-2006Q2:1.3.0.28 pkgsrc-2006Q2-base:1.3 pkgsrc-2006Q1:1.3.0.26 pkgsrc-2006Q1-base:1.3 pkgsrc-2005Q4:1.3.0.24 pkgsrc-2005Q4-base:1.3 pkgsrc-2005Q3:1.3.0.22 pkgsrc-2005Q3-base:1.3 pkgsrc-2005Q2:1.3.0.20 pkgsrc-2005Q2-base:1.3 pkgsrc-2005Q1:1.3.0.18 pkgsrc-2005Q1-base:1.3 pkgsrc-2004Q4:1.3.0.16 pkgsrc-2004Q4-base:1.3 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 netbsd-1-5-RELEASE:1.1 netbsd-1-4-PATCH003:1.1 netbsd-1-4-PATCH002:1.1; locks; strict; comment @# @; 1.5 date 2012.08.11.17.20.23; author marino; state Exp; branches; next 1.4; 1.4 date 2007.12.09.23.41.11; author wiz; state Exp; branches; next 1.3; 1.3 date 2002.05.24.18.12.36; author martin; state Exp; branches; next 1.2; 1.2 date 2002.01.29.13.46.17; author wiz; state Exp; branches 1.2.2.1; next 1.1; 1.1 date 2000.01.25.10.33.30; author abs; state Exp; branches; next ; 1.2.2.1 date 2002.06.23.18.56.39; author jlam; state Exp; branches; next ; desc @@ 1.5 log @net/wmpload: Add FreeBSD and DragonFly support Patch differentials came from FreeBSD ports. Followed NetBSD's suit with the quad support. @ text @$NetBSD$ FreeBSD changes taken from FreeBSD ports --- ioctl_stat.c.orig 2000-02-01 07:11:24.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,60 @@@@ void ioctl_stat(if_data *ifd) #define ifr_name ifr__name #endif +#ifdef __NetBSD__ + strncpy(ifr.ifr_name, ifd->device, sizeof(ifr.ifr_name)); + if (ioctl(ifd->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 __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(__NetBSD__) && defined(SIOCGIFDATA) + /* prefer the generic interface statistics over the PPP specific ones */ + strncpy(ifdr.ifdr_name, ifd->device, sizeof(ifdr.ifdr_name)); + if (ioctl(ifd->s, SIOCGIFDATA, &ifdr) == -1) + { + /* non-existent device? */ + ifd->in_bytes = 0UL; + ifd->out_bytes = 0UL; + return; + } + ifd->in_bytes = ifi->ifi_ibytes; + ifd->out_bytes = ifi->ifi_obytes; +#else strncpy(req.ifr_name, ifd->device, sizeof(req.ifr_name)); if (ioctl(ifd->s, SIOCGPPPSTATS, &req) != 0) { @@@@ -95,6 +176,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 to 0.9.5, provided by Sergey Svishchev in private mail: - Fixed stats not being cleared when disconnected - Added user specified format for labels. - Added user customizable label for the not connected condition. - Removed global variables in stats gathering functions. pkgsrc fix: don't cast 64-bit counters to unsigned long. @ text @d3 2 d7 28 a34 1 @@@@ -61,6 +61,10 @@@@ void getsocket(if_data *ifd) d38 9 d52 1 d55 12 a66 1 @@@@ -84,6 +88,31 @@@@ void ioctl_stat(if_data *ifd) d82 30 a111 1 +#if defined(__NetBSD__) && defined(SIOCGIFDATA) d127 1 a127 1 @@@@ -95,6 +124,7 @@@@ void ioctl_stat(if_data *ifd) @ 1.3 log @If the SIOCGIFDATA ioctl is available, use that instead of the PPP specific one. This makes the tool useable on any network interface. @ text @d1 1 a1 1 $NetBSD: patch-aa,v 1.2 2002/01/29 13:46:17 wiz Exp $ d3 3 a5 4 --- ioctl_stat.c.orig Thu Mar 4 08:33:03 1999 +++ ioctl_stat.c Fri May 24 20:03:05 2002 @@@@ -68,6 +68,13 @@@@ d8 1 a8 2 +#ifdef __NetBSD__ + struct ifreq ifr; a12 1 +#endif d15 2 a16 2 if (s < 0) getsocket(); @@@@ -78,8 +85,33 @@@@ d18 2 a19 4 req.stats_ptr = (caddr_t) &req.stats; #endif - sprintf(req.ifr_name, ifd->device); d21 2 a22 2 + sprintf(ifr.ifr_name, ifd->device); + if (ioctl(s, SIOCGIFFLAGS, (caddr_t)&ifr) < 0 || d33 1 a33 1 + /* prefere the generic interface statistics over the PPP specific ones */ d35 1 a35 1 + if (ioctl(s, SIOCGIFDATA, &ifdr) == -1) d37 1 a37 1 + /* non-existant device? */ d42 2 a43 2 + ifd->in_bytes = (unsigned long)ifi->ifi_ibytes; + ifd->out_bytes = (unsigned long)ifi->ifi_obytes; d45 2 a46 2 + sprintf(req.ifr_name, ifd->device); if (ioctl(s, SIOCGPPPSTATS, &req) != 0) d48 1 a48 2 /* non-existant device? */ @@@@ -90,6 +122,7 @@@@ @ 1.2 log @Standardize patch. @ text @d1 1 a1 1 $NetBSD$ d4 2 a5 2 +++ ioctl_stat.c @@@@ -68,6 +68,9 @@@@ d11 4 d19 1 a19 1 @@@@ -78,8 +81,20 @@@@ d37 13 d54 8 @ 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:12:36 martin Exp $ d4 2 a5 2 +++ ioctl_stat.c Fri May 24 20:03:05 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 @@@@ -78,8 +85,33 @@@@ a32 13 +#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 a36 8 @@@@ -90,6 +122,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 @If the interface is down - report 'No Connection'. Patch submitted to author. @ text @d3 2 a4 2 --- ioctl_stat.c Thu Mar 4 07:33:03 1999 +++ /usr/home/abs/ioctl_stat.c Tue Jan 25 02:05:44 2000 @