Add appstatus port patch

Submitted by:	Aleksey Malyshev <alex@smallet.spb.ru>
This commit is contained in:
Yukihiro Nakai 2001-04-16 07:06:31 +00:00
parent b32ad54c04
commit c450d96545
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=41453
2 changed files with 50 additions and 0 deletions

View File

@ -7,6 +7,7 @@
PORTNAME= icewm
PORTVERSION= 1.0.7
PORTREVISION= 1
CATEGORIES= x11-wm
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
MASTER_SITE_SUBDIR= ${PORTNAME}

View File

@ -0,0 +1,49 @@
--- src/apppstatus.cc.orig Sat Mar 17 00:17:37 2001
+++ src/apppstatus.cc Thu Apr 5 22:45:29 2001
@@ -270,6 +270,7 @@
return isUpIsdn();
#endif
+#ifndef __FreeBSD__
char buffer[32 * sizeof(struct ifreq)];
struct ifconf ifc;
struct ifreq *ifr;
@@ -301,6 +302,38 @@
}
close(s);
+
+#else // __FreeBSD__
+ // FreeBSD code by Ronald Klop <ronald@cs.vu.nl>
+ struct ifmibdata ifmd;
+ size_t ifmd_size=sizeof(ifmibdata);
+ int nr_network_devs;
+ size_t int_size=sizeof(int);
+ int name[6];
+ name[0] = CTL_NET;
+ name[1] = PF_LINK;
+ name[2] = NETLINK_GENERIC;
+ name[3] = IFMIB_IFDATA;
+ name[5] = IFDATA_GENERAL;
+
+ if(sysctlbyname("net.link.generic.system.ifcount",&nr_network_devs,
+ &int_size,(void*)0,0) == -1) {
+ printf("%s@%d: %s\n",__FILE__,__LINE__,strerror(errno));
+ } else {
+ for(int i=1;i<=nr_network_devs;i++) {
+ name[4] = i; /* row of the ifmib table */
+
+ if(sysctl(name, 6, &ifmd, &ifmd_size, (void *)0, 0) == -1) {
+ printf(_("%s@%d: %s\n"),__FILE__,__LINE__,strerror(errno));
+ continue;
+ }
+
+ if (strcmp(ifmd.ifmd_name, netDevice) == 0 && (ifmd.ifmd_flags & IFF_RUNNING)) {
+ return true;
+ }
+ }
+ }
+#endif // __FreeBSD__
return false;
#endif // if 0
}