From 81c593ffac0cbadd56c6231a3f8de4608e43cd4a Mon Sep 17 00:00:00 2001 From: bland Date: Mon, 17 Nov 2003 15:21:39 +0000 Subject: Network load indicator from multiload applet now works on FreeBSD. --- x11/gnomeapplets2/Makefile | 2 +- .../files/patch-multiload::linux-proc.c | 84 ++++++++++++++++++++++ 2 files changed, 85 insertions(+), 1 deletion(-) create mode 100644 x11/gnomeapplets2/files/patch-multiload::linux-proc.c (limited to 'x11/gnomeapplets2') diff --git a/x11/gnomeapplets2/Makefile b/x11/gnomeapplets2/Makefile index b436f54f4e75..88f9750d2929 100644 --- a/x11/gnomeapplets2/Makefile +++ b/x11/gnomeapplets2/Makefile @@ -7,7 +7,7 @@ PORTNAME= gnomeapplets2 PORTVERSION= 2.4.1 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= x11 gnome MASTER_SITES= ${MASTER_SITE_GNOME} MASTER_SITE_SUBDIR= sources/gnome-applets/2.4 diff --git a/x11/gnomeapplets2/files/patch-multiload::linux-proc.c b/x11/gnomeapplets2/files/patch-multiload::linux-proc.c new file mode 100644 index 000000000000..9eb916f2b59f --- /dev/null +++ b/x11/gnomeapplets2/files/patch-multiload::linux-proc.c @@ -0,0 +1,84 @@ +--- multiload/linux-proc.c.orig Thu Jul 10 04:26:58 2003 ++++ multiload/linux-proc.c Mon Nov 17 23:54:38 2003 +@@ -5,12 +5,17 @@ + #include + #include + #include ++#ifdef __FreeBSD__ ++#include ++#include ++#endif + + #include + #include + #include + #include + #include ++#include + + #include "linux-proc.h" + +@@ -33,6 +38,10 @@ + static unsigned needed_loadavg_flags = + (1 << GLIBTOP_LOADAVG_LOADAVG); + ++static unsigned needed_netload_flags = ++(1 << GLIBTOP_NETLOAD_IF_FLAGS) + ++(1 << GLIBTOP_NETLOAD_BYTES_TOTAL); ++ + void + GetLoad (int Maximum, int data [4], LoadGraph *g) + { +@@ -236,6 +245,44 @@ + int delta[COUNT_TYPES], i; + static int ticks = 0; + static gulong past[COUNT_TYPES] = {0}; ++#ifdef __FreeBSD__ ++ struct if_nameindex *ifindex, *ifptr; ++ static int max = 500; ++ ++ ifindex = if_nameindex(); ++ if (!ifindex) ++ return; ++ ++ memset(present, 0, sizeof (present)); ++ ++ for (ifptr = ifindex; ifptr->if_index && ifptr->if_name; ifptr++) ++ { ++ int index; ++ glibtop_netload netload; ++ ++ glibtop_get_netload(&netload, ifptr->if_name); ++ if (!netload.flags) ++ continue; ++ ++ assert ((netload.flags & needed_netload_flags) == needed_netload_flags); ++ ++ if (!(netload.if_flags & (1L << GLIBTOP_IF_FLAGS_UP))) ++ continue; ++ if (netload.if_flags & (1L << GLIBTOP_IF_FLAGS_LOOPBACK)) ++ continue; ++ ++ if (netload.if_flags & (1L << GLIBTOP_IF_FLAGS_POINTOPOINT)) { ++ index = strncmp(ifptr->if_name, "sl", 2) ? PPP_COUNT : SLIP_COUNT; ++ } else { ++ index = ETH_COUNT; ++ } ++ ++ present[index] += netload.bytes_total; ++ } ++ ++ if_freenameindex(ifindex); ++ ++#else + static char *netdevfmt = NULL; + char *cp, buffer[256]; + FILE *fp; +@@ -317,6 +364,7 @@ + } + + fclose(fp); ++#endif + + for (i = 0; i < 5; i++) + data[i] = 0; -- cgit