1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-21 00:25:50 +00:00

- Fix build on -current

- Update MASTER_SITES

PR:		ports/184839
Submitted by:	KATO Tsuguru <tkato432@yahoo.com>
This commit is contained in:
Pawel Pekala 2013-12-19 21:48:22 +00:00
parent e695352d91
commit 86f3097928
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=336964
8 changed files with 227 additions and 249 deletions

View File

@ -5,8 +5,8 @@ PORTNAME= wmnet2
PORTVERSION= 1.06 PORTVERSION= 1.06
PORTREVISION= 5 PORTREVISION= 5
CATEGORIES= net CATEGORIES= net
MASTER_SITES= http://www.dockapps.org/files/77/115/ \ MASTER_SITES= http://fossies.org/linux/misc/old/ \
http://www.katharineosborne.com/wmnet/ http://linux-bsd-unix.strefa.pl/
DISTNAME= wmnet-${PORTVERSION} DISTNAME= wmnet-${PORTVERSION}
MAINTAINER= ports@FreeBSD.org MAINTAINER= ports@FreeBSD.org
@ -15,8 +15,12 @@ COMMENT= Nice network monitor for WindowMaker
USES= imake USES= imake
USE_XORG= x11 xext USE_XORG= x11 xext
MAN1= wmnet2.1 PLIST_FILES= bin/wmnet2 man/man1/wmnet2.1.gz
PLIST_FILES= bin/wmnet2
post-extract:
@${LN} -sf wmnet.man ${WRKSRC}/wmnet2.man
post-install:
@${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/wmnet2
NO_STAGE= yes
.include <bsd.port.mk> .include <bsd.port.mk>

View File

@ -0,0 +1,34 @@
--- Imakefile.orig
+++ Imakefile
@@ -1,5 +1,4 @@
DEPLIBS = $(DEPXLIB)
-CC = gcc -Wall
#ifdef LinuxArchitecture
STD_DEFINES = -Dlinux
@@ -10,14 +9,17 @@
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 = -m 0755
#endif
LINTLIBS = $(LINTXLIB)
-#if defined (FreeBSDArchitecture) || defined (OpenBSDArchitecture)
+#if defined (OpenBSDArchitecture)
SRCS = wmnet.c drivers.c getopt.c getopt1.c
OBJS = wmnet.o drivers.o getopt.o getopt1.o
#else
@@ -26,4 +28,4 @@
#endif
-ComplexProgramTarget(wmnet)
+ComplexProgramTarget(wmnet2)

View File

@ -1,198 +0,0 @@
--- 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<kvm.h>
@@ -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) {

View File

@ -1,11 +0,0 @@
--- Imakefile 2001/09/08 12:01:26 1.1
+++ Imakefile 2001/09/08 12:02:34
@@ -26,4 +26,7 @@
#endif
-ComplexProgramTarget(wmnet)
+ComplexProgramTarget(wmnet2)
+
+wmnet2.man: wmnet.man
+ ln -sf wmnet.man wmnet2.man

View File

@ -0,0 +1,23 @@
--- config.h.orig
+++ config.h
@@ -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

View File

@ -1,15 +1,46 @@
--- drivers.c.orig Tue Apr 27 09:22:02 2004 --- drivers.c.orig Tue Apr 27 09:22:02 2004
+++ drivers.c Tue Apr 27 09:32:19 2004 +++ drivers.c Tue Apr 27 09:32:19 2004
@@ -47,7 +47,7 @@ @@ -21,7 +21,7 @@
#include <sys/errno.h> #include"config.h"
int id = 0; /* interface id */
-int len = 0; /* sizeof libmibdata */ -/* For FreeBSD */
+/* For OpenBSD */
#ifdef USE_KVM
#include<net/if.h>
#include<kvm.h>
@@ -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 */
+size_t len = 0; /* sizeof libmibdata */ +size_t len = 0; /* sizeof libmibdata */
struct ifmibdata *data = NULL; +struct ifmibdata *data = NULL;
+
+int sysctl_test(void);
+int sysctl_updateStats(void);
+#endif
int sysctl_test(void); #ifdef USE_LINUX_PPP
@@ -128,7 +128,7 @@ #include<net/ppp_defs.h>
@@ -104,12 +120,15 @@
#ifdef USE_KVM
{"kmem",kvm_updateStats, kvm_test},
#endif
+#ifdef USE_SYSCTL
+ {"sysctl",sysctl_updateStats, sysctl_test},
+#endif
{NULL, NULL}
};
char* available_drivers(void) { char* available_drivers(void) {
int ind = 0; int ind = 0;
@ -18,13 +49,119 @@
char *string, *ptr; char *string, *ptr;
while(drivers[ind].name != NULL) { while(drivers[ind].name != NULL) {
len += strlen(drivers[ind].name) + 1; len += strlen(drivers[ind].name) + 1;
@@ -464,7 +464,8 @@ @@ -440,6 +459,115 @@
int sysctl_test(void) { #endif /* linux */
struct ifmibdata tempndata;
- int numifaces, len2; +/* new FreeBSD driver */
+#ifdef USE_SYSCTL
+
+int sysctl_test(void) {
+ struct ifmibdata tempndata;
+ int numifaces; + int numifaces;
+ size_t len2; + size_t len2;
int mib[5], datamib[6]; + int mib[5], datamib[6];
int i; + 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) {
if (((kvmfd = kvm_open(NULL, NULL, NULL, O_RDONLY, buffer)) == NULL) ||

View File

@ -1,11 +0,0 @@
--- getopt.c.orig Fri Oct 9 10:59:00 1998
+++ getopt.c Tue Apr 27 09:57:46 2004
@@ -209,6 +209,8 @@
char *getenv ();
extern int strncmp(const char *s1, const char *s2, size_t len);
+extern int strcmp(const char *, const char *);
+extern size_t strlen(const char *);
static char *
my_index (str, chr)

View File

@ -1,11 +1,11 @@
This little program polls network statistics and does a few things with the This little program polls network statistics and does a few things with
data it gets. It has small blinking lights for the rx and tx of IP packets, the data it gets. It has small blinking lights for the rx and tx of IP
a digital speedometer of your polled stat's currentspeed and a bar graph like packets, a digital speedometer of your polled stat's current speed and a
xload et. al which has a tx speed graph from bottom-up and rx speed graph bar graph like xload et. al which has a tx speed graph from bottom-up
from the top-down. The speedometer keeps track of the current speed per and rx speed graph from the top-down. The speedometer keeps track of the
second and shows it in a color corresponding to which of rx or tx that has current speed per second and shows it in a color corresponding to which
the highest speed at the moment. Also, the graph is drawn in a way that the of rx or tx that has the highest speed at the moment. Also, the graph is
highest speed is drawn on top of the other while the other is in the drawn in a way that the highest speed is drawn on top of the other while
background. the other is in the background.
WWW: http://www.dockapps.org/file.php/id/77 WWW: http://linux-bsd-unix.strefa.pl/