--- wl.c.orig 2006-05-09 20:57:57.000000000 -0700 +++ wl.c 2008-05-04 14:50:05.000000000 -0700 @@ -261,7 +261,8 @@ uint8_t *vp; sr = (struct ieee80211req_scan_result *)cp; vp = (u_int8_t *)(sr + 1); - strlcpy(network_id, vp, sr->isr_ssid_len + 1); + memcpy(network_id, vp, sr->isr_ssid_len); + network_id[sizeof(network_id) - 1] = '\0'; if (!strcmp(network_id, network)) return (sr->isr_rssi); cp += sr->isr_len; @@ -283,6 +284,7 @@ int get_wi_signal(const char *interface) { +#ifndef __FreeBSD__ /* wi support is broken on FreeBSD 7 */ int s; struct ifreq ifr; struct wi_req wreq; @@ -319,6 +321,8 @@ #ifdef __FreeBSD__ return (wreq.wi_val[1]); #endif +#endif /* wi support is broken on FreeBSD 7 */ +return -1; /* wi support is broken on FreeBSD 7 */ } /*