aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--x11-wm/icewm/Makefile1
-rw-r--r--x11-wm/icewm/files/patch-am49
2 files changed, 50 insertions, 0 deletions
diff --git a/x11-wm/icewm/Makefile b/x11-wm/icewm/Makefile
index fa4b9f1a94ee..4be6ba0f35cc 100644
--- a/x11-wm/icewm/Makefile
+++ b/x11-wm/icewm/Makefile
@@ -7,6 +7,7 @@
PORTNAME= icewm
PORTVERSION= 1.0.7
+PORTREVISION= 1
CATEGORIES= x11-wm
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
MASTER_SITE_SUBDIR= ${PORTNAME}
diff --git a/x11-wm/icewm/files/patch-am b/x11-wm/icewm/files/patch-am
new file mode 100644
index 000000000000..da482f7634b8
--- /dev/null
+++ b/x11-wm/icewm/files/patch-am
@@ -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
+ }