diff options
author | Pav Lucistnik <pav@FreeBSD.org> | 2003-12-20 00:40:01 +0000 |
---|---|---|
committer | Pav Lucistnik <pav@FreeBSD.org> | 2003-12-20 00:40:01 +0000 |
commit | adb7ab81e7338ba82f704f2d6b8ee42d6312dfc1 (patch) | |
tree | a6a295026da8abc777d517839e0f2684a6071d17 /net/wmnet2 | |
parent | 2ac14e81c8c4e7d7f34bb00b276e2707995f98fe (diff) | |
download | ports-adb7ab81e7338ba82f704f2d6b8ee42d6312dfc1.tar.gz ports-adb7ab81e7338ba82f704f2d6b8ee42d6312dfc1.zip |
Notes
Diffstat (limited to 'net/wmnet2')
-rw-r--r-- | net/wmnet2/Makefile | 6 | ||||
-rw-r--r-- | net/wmnet2/files/patch-aa | 227 | ||||
-rw-r--r-- | net/wmnet2/files/patch-ac | 10 | ||||
-rw-r--r-- | net/wmnet2/pkg-descr | 2 |
4 files changed, 198 insertions, 47 deletions
diff --git a/net/wmnet2/Makefile b/net/wmnet2/Makefile index 0273c4a2d126..06a3706b1798 100644 --- a/net/wmnet2/Makefile +++ b/net/wmnet2/Makefile @@ -7,13 +7,13 @@ PORTNAME= wmnet2 PORTVERSION= 1.06 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= net MASTER_SITES= http://www.digitalkaos.net/linux/wmnet/download/ DISTNAME= wmnet-${PORTVERSION} -MAINTAINER= flag@libero.it -COMMENT= A cool network monitor for WindowMaker +MAINTAINER= flag@gufi.org +COMMENT= A nice network monitor for WindowMaker USE_IMAKE= yes diff --git a/net/wmnet2/files/patch-aa b/net/wmnet2/files/patch-aa index ac87895a0dc2..3fd56aad4d8f 100644 --- a/net/wmnet2/files/patch-aa +++ b/net/wmnet2/files/patch-aa @@ -1,37 +1,198 @@ ---- drivers.c.orig Thu May 4 20:34:29 2000 -+++ drivers.c Mon Feb 18 12:54:45 2002 -@@ -15,6 +15,7 @@ - #include<X11/Xlib.h> - #include<fcntl.h> - #include<sys/types.h> -+#include <sys/time.h> - #include<sys/stat.h> - #include<sys/socket.h> - #include<unistd.h> -@@ -24,6 +25,8 @@ - /* For FreeBSD */ +--- Imakefile Fri May 5 02:34:29 2000 ++++ Imakefile Tue Nov 11 10:54:42 2003 +@@ -10,9 +10,12 @@ + LOCAL_LIBRARIES = $(XLIB) -lm + #endif + +-#if defined (FreeBSDArchitecture) || defined (OpenBSDArchitecture) ++#if defined (OpenBSDArchitecture) + LOCAL_LIBRARIES = $(XLIB) -lm -lkvm + INSTPGMFLAGS = -s -g kmem -m 2755 ++#elif defined (FreeBSDArchitecture) ++LOCAL_LIBRARIES = $(XLIB) -lm ++INSTPGMFLAGS = -s -m 0755 + #endif + + LINTLIBS = $(LINTXLIB) +--- config.h Fri May 5 02:34:29 2000 ++++ config.h Tue Nov 11 10:59:05 2003 +@@ -1,6 +1,6 @@ +-#if defined (__FreeBSD__) || defined (__OpenBSD__) ++#if defined (__OpenBSD__) + +-/* Our only FreeBSD driver, this goes straight into kernel memory ++/* Our only OpenBSD driver(old FreeBSD-4.x driver), this goes straight into kernel memory + * and reads the raw structures from right underneath the kernel using the + * kvm library. This made the code a require a little more thought, but + * the end result is a statistics driver thats faster than the linux ones +@@ -12,7 +12,11 @@ + + #endif + ++#if defined (__FreeBSD__) + ++#define USE_SYSCTL ++ ++#endif + + #ifdef linux + +--- drivers.c Fri May 5 02:34:29 2000 ++++ drivers.c Wed Nov 12 11:42:40 2003 +@@ -21,7 +21,7 @@ + #include"config.h" + + +-/* For FreeBSD */ ++/* For OpenBSD */ #ifdef USE_KVM #include<net/if.h> -+#include <net/if_var.h> -+#include <net/if_types.h> #include<kvm.h> - #include<nlist.h> - -@@ -455,6 +458,8 @@ - unsigned long ifnet_addr = ifnet_savedaddr; - char devname[16]; - int flag = 0; -+ rx = False; -+ tx = False; - while (ifnet_addr && flag != (ACCOUNT_IN_FOUND|ACCOUNT_OUT_FOUND)) { - kvm_read(kvmfd, ifnet_addr, buffer, sizeof(struct ifnet)); - #ifdef __OpenBSD__ -@@ -490,7 +495,7 @@ - #ifdef __OpenBSD__ - ifnet_addr = (unsigned long)ifnet->if_list.tqe_next; - #else -- ifnet_addr = (unsigned long)ifnet->if_next; -+ ifnet_addr = (unsigned long) TAILQ_NEXT(ifnet,if_link); +@@ -37,6 +37,22 @@ + int kvm_updateStats(void); + #endif /* USE_KVM */ + ++#ifdef USE_SYSCTL ++/* system headers */ ++#include <sys/types.h> ++#include <sys/sysctl.h> ++#include <sys/socket.h> ++#include <net/if.h> ++#include <net/if_mib.h> ++#include <sys/errno.h> ++ ++int id = 0; /* interface id */ ++int len = 0; /* sizeof libmibdata */ ++struct ifmibdata *data = NULL; ++ ++int sysctl_test(void); ++int sysctl_updateStats(void); ++#endif + + #ifdef USE_LINUX_PPP + #include<net/ppp_defs.h> +@@ -104,6 +120,9 @@ + #ifdef USE_KVM + {"kmem",kvm_updateStats, kvm_test}, #endif - } - } ++#ifdef USE_SYSCTL ++ {"sysctl",sysctl_updateStats, sysctl_test}, ++#endif + {NULL, NULL} + }; + +@@ -439,6 +458,114 @@ + + + #endif /* linux */ ++ ++/* new FreeBSD driver */ ++#ifdef USE_SYSCTL ++ ++int sysctl_test(void) { ++ struct ifmibdata tempndata; ++ int numifaces, len2; ++ int mib[5], datamib[6]; ++ int i; ++ ++ if(device == NULL) device = "lo0"; ++ ++ mib[0] = CTL_NET; ++ mib[1] = PF_LINK; ++ mib[2] = NETLINK_GENERIC; ++ mib[3] = IFMIB_SYSTEM; ++ mib[4] = IFMIB_IFCOUNT; ++ ++ datamib[0] = CTL_NET; ++ datamib[1] = PF_LINK; ++ datamib[2] = NETLINK_GENERIC; ++ datamib[3] = IFMIB_IFDATA; ++ datamib[4] = 1; ++ datamib[5] = IFDATA_GENERAL; ++ ++ len = sizeof(struct ifmibdata); ++ len2 = sizeof(numifaces); ++ ++ if(sysctl(mib, 5, &numifaces, &len2, NULL, 0) < 0) ++ { ++ fprintf( stderr, "wmnet: failed to perform sysctl" ); ++ return 0; ++ } ++ ++ for(i = 1; i <= numifaces; i++) ++ { ++ datamib[4] = i; ++ if(sysctl(datamib, 6, &tempndata, &len, NULL, 0) < 0) ++ { ++ fprintf( stderr, "wmnet: failed to get device(%d) data", i ); ++ break; ++ } ++ ++ if( strcmp( device, tempndata.ifmd_name ) == 0 ) ++ { ++ id = i; ++ break; ++ } ++ } ++ ++ if ( id == 0 ) { ++ fprintf( stderr, "%s doesn't seem to exist!\n", device ); ++ exit( -1 ); ++ } ++ ++ /* calculate and allocate mem for ifmibdata containing the if stats */ ++ data = malloc(len); ++ ++ fprintf(stderr, "wmnet: using sysctl driver to monitor %s\n", device); ++ return True; ++} ++ ++int sysctl_updateStats(void) { ++ int datamib[6]; ++ ++ datamib[0] = CTL_NET; ++ datamib[1] = PF_LINK; ++ datamib[2] = NETLINK_GENERIC; ++ datamib[3] = IFMIB_IFDATA; ++ datamib[4] = id; ++ datamib[5] = IFDATA_GENERAL; ++ ++ if(sysctl( datamib, 6, data, &len, NULL, 0) < 0 ) { ++ fprintf( stderr, "wmnet: can't monitor %s device\n", device ); ++ exit( -1 ); ++ } ++ ++ // printf( "if name: %s\n", data->ifmd_name ); ++ ++ /* get the stats from the if */ ++ totalpackets_in = data->ifmd_data.ifi_ipackets; ++ totalpackets_out = data->ifmd_data.ifi_opackets; ++ ++ if (totalpackets_in != lastpackets_in) { ++ totalbytes_in = data->ifmd_data.ifi_ibytes; ++ diffpackets_in += totalpackets_in - lastpackets_in; ++ diffbytes_in += totalbytes_in - lastbytes_in; ++ lastpackets_in = totalpackets_in; ++ lastbytes_in = totalbytes_in; ++ rx = True; ++ } else rx = False; ++ ++ if (totalpackets_out != lastpackets_out) { ++ totalbytes_out = data->ifmd_data.ifi_obytes; ++ diffpackets_out += totalpackets_out - lastpackets_out; ++ diffbytes_out += totalbytes_out - lastbytes_out; ++ lastpackets_out = totalpackets_out; ++ lastbytes_out = totalbytes_out; ++ tx = True; ++ } else tx = False; ++ ++ /* return True if no change to tx/rx ++ * return False if display will need to be updated ++ */ ++ return((rx == current_rx) && (tx == current_tx)); ++} ++ ++#endif + + #ifdef USE_KVM + int kvm_test(void) { diff --git a/net/wmnet2/files/patch-ac b/net/wmnet2/files/patch-ac deleted file mode 100644 index 6f1bac1ac955..000000000000 --- a/net/wmnet2/files/patch-ac +++ /dev/null @@ -1,10 +0,0 @@ ---- wmnet.c.orig Thu May 4 21:01:14 2000 -+++ wmnet.c Wed Dec 19 17:43:40 2001 -@@ -732,6 +732,7 @@ - case ButtonPress: - if(event.xbutton.button == Button1 && click_command != NULL) { - if (fork() == 0) { -+ setgid(getgid()); - execl("/bin/sh", "sh", "-c", click_command, NULL); - perror("wmnet: execl()"); - exit(15); diff --git a/net/wmnet2/pkg-descr b/net/wmnet2/pkg-descr index 31163885b583..be1c4500d78a 100644 --- a/net/wmnet2/pkg-descr +++ b/net/wmnet2/pkg-descr @@ -11,4 +11,4 @@ background. WWW: http://www.digitalkaos.net/linux/wmnet/ - Paolo -flag@libero.it +flag@gufi.org |