Index: files/patch-wireless.h =================================================================== RCS file: /home/pcvs/ports/net/gkrellmwireless/files/patch-wireless.h,v retrieving revision 1.1 diff -u -r1.1 patch-wireless.h --- files/patch-wireless.h 22 Aug 2002 22:59:17 -0000 1.1 +++ files/patch-wireless.h 18 Mar 2008 11:10:34 -0000 @@ -1,6 +1,6 @@ ---- wireless.h.orig Thu Aug 22 15:38:11 2002 -+++ wireless.h Thu Aug 22 15:38:24 2002 -@@ -21,7 +21,7 @@ +--- wireless.h.orig 2001-09-09 16:25:55.000000000 +0200 ++++ wireless.h 2008-03-18 12:07:33.000000000 +0100 +@@ -21,9 +21,14 @@ #include #ifdef __FreeBSD__ #include @@ -8,4 +8,11 @@ + #include #define ANCACHE #include ++ #if __FreeBSD_version > 600034 ++ #include ++ #include ++ #include ++ #endif #endif + + #ifdef __NetBSD__ --- /dev/null 2008-03-18 12:13:36.000000000 +0100 +++ files/patch-wireless.c 2008-03-18 12:11:25.000000000 +0100 @@ -0,0 +1,107 @@ +--- wireless.c.orig 2001-09-09 16:25:40.000000000 +0200 ++++ wireless.c 2008-03-18 12:10:36.000000000 +0100 +@@ -94,6 +94,37 @@ + + static int + find_wi_card(void) { ++ int s, ret; ++ ret = FALSE; ++ ++#if defined(__FreeBSD__) && __FreeBSD_version >= 600034 ++ struct ifaddrs *res = NULL, *ifa = NULL; ++ struct ifmediareq ifmr; ++ ++ if (getifaddrs(&res)) ++ return ret; ++ ++ if ((s = socket(PF_INET, SOCK_DGRAM, 0)) < 0) { ++ freeifaddrs(res); ++ return ret; ++ } ++ ++ for (ifa = res; ifa; ifa = ifa->ifa_next) { ++ memset(&ifmr, 0, sizeof(ifmr)); ++ strncpy(ifmr.ifm_name, ifa->ifa_name, sizeof(ifmr.ifm_name)); ++ if (ioctl(s, SIOCGIFMEDIA, (caddr_t)&ifmr) < 0) ++ continue; ++ if (!(ifmr.ifm_status & IFM_AVALID)) ++ continue; ++ if (IFM_TYPE(ifmr.ifm_active) != IFM_IEEE80211) ++ continue; ++ if (found_wcard(ifa->ifa_name) != NULL) ++ ret = TRUE; ++ } ++ ++ freeifaddrs(res); ++ ++#else + /* possible interfaces */ + char interfaces[][4] = {"wi0","wi1","wi2"}; + +@@ -101,9 +132,8 @@ + struct wi_req wreq; + /* interface request struct */ + struct ifreq ifr; +- int s,i,ret; ++ int i; + +- ret = FALSE; + /* open a socket for ioctl's */ + if ((s = socket(AF_INET, SOCK_DGRAM, 0)) == -1) return ret; + +@@ -126,7 +156,7 @@ + + if(found_wcard(interfaces[i]) != NULL) ret = TRUE; + } +- ++#endif + close(s); + return ret; + } +@@ -174,11 +204,36 @@ + + static int + get_wi_link_quality(wcard_t *card, float *quality, float *level, float *noise) { ++ int s; ++#if defined(__FreeBSD__) && __FreeBSD_version >= 600034 ++ uint8_t buf[24 * 1024]; ++ struct ieee80211req ireq; ++ struct ieee80211req_scan_result *sr; ++ ++ if ((s = socket(AF_INET, SOCK_DGRAM, 0)) == -1) return FALSE; ++ ++ memset(&ireq, 0, sizeof(ireq)); ++ strncpy(ireq.i_name, card->ifname, sizeof(ireq.i_name)); ++ ireq.i_type = IEEE80211_IOC_SCAN_RESULTS; ++ ireq.i_data = buf; ++ ireq.i_len = sizeof(buf); ++ if (ioctl(s, SIOCG80211, &ireq) < 0) { ++ close(s); ++ return FALSE; ++ } ++ close(s); ++ if (ireq.i_len < sizeof(struct ieee80211req_scan_result)) ++ return FALSE; ++ ++ sr = (struct ieee80211req_scan_result *) buf; ++ *quality = sr->isr_intval; ++ *level = sr->isr_rssi; ++ *noise = sr->isr_noise; ++#else + /* wireless info request struct */ + struct wi_req wreq; + /* interface request struct */ + struct ifreq ifr; +- int s; + + /* open a socket for ioctl's */ + if ((s = socket(AF_INET, SOCK_DGRAM, 0)) == -1) return FALSE; +@@ -207,6 +262,8 @@ + *level = wreq.wi_val[1]; + *noise = wreq.wi_val[2]; + ++#endif ++ + return TRUE; + } + Index: Makefile =================================================================== RCS file: /home/pcvs/ports/net/gkrellmwireless/Makefile,v retrieving revision 1.14 diff -u -r1.14 Makefile --- Makefile 1 Oct 2007 08:17:43 -0000 1.14 +++ Makefile 18 Mar 2008 11:16:49 -0000 @@ -7,7 +7,7 @@ PORTNAME= gkrellmwireless PORTVERSION= 0.2.2 -PORTREVISION= 4 +PORTREVISION= 5 CATEGORIES= net MASTER_SITES= http://gkrellm.luon.net/files/ @@ -19,15 +19,8 @@ NO_LATEST_LINK= yes -USE_X_PREFIX= yes -USE_GNOME= imlib +USE_GNOME= imlib gtk12 PLIST_FILES= libexec/gkrellm/plugins/wireless.so -.include - -.if ${OSVERSION} >= 700042 -BROKEN= Does not compile with GCC 4.2 -.endif - -.include +.include