diff options
-rw-r--r-- | x11-wm/icewm/Makefile | 1 | ||||
-rw-r--r-- | x11-wm/icewm/files/patch-am | 49 |
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 + } |