Changeset View
Changeset View
Standalone View
Standalone View
head/sbin/ifconfig/ifieee80211.c
Show First 20 Lines • Show All 3,490 Lines • ▼ Show 20 Lines | |||||
} | } | ||||
static void | static void | ||||
list_scan(int s) | list_scan(int s) | ||||
{ | { | ||||
uint8_t buf[24*1024]; | uint8_t buf[24*1024]; | ||||
char ssid[IEEE80211_NWID_LEN+1]; | char ssid[IEEE80211_NWID_LEN+1]; | ||||
const uint8_t *cp; | const uint8_t *cp; | ||||
int len, ssidmax, idlen; | int len, idlen; | ||||
if (get80211len(s, IEEE80211_IOC_SCAN_RESULTS, buf, sizeof(buf), &len) < 0) | if (get80211len(s, IEEE80211_IOC_SCAN_RESULTS, buf, sizeof(buf), &len) < 0) | ||||
errx(1, "unable to get scan results"); | errx(1, "unable to get scan results"); | ||||
if (len < sizeof(struct ieee80211req_scan_result)) | if (len < sizeof(struct ieee80211req_scan_result)) | ||||
return; | return; | ||||
getchaninfo(s); | getchaninfo(s); | ||||
ssidmax = verbose ? IEEE80211_NWID_LEN : 32; | |||||
printf("%-*.*s %-17.17s %4s %4s %-7s %3s %4s\n" | printf("%-*.*s %-17.17s %4s %4s %-7s %3s %4s\n" | ||||
, ssidmax, ssidmax, "SSID/MESH ID" | , IEEE80211_NWID_LEN, IEEE80211_NWID_LEN, "SSID/MESH ID" | ||||
, "BSSID" | , "BSSID" | ||||
, "CHAN" | , "CHAN" | ||||
, "RATE" | , "RATE" | ||||
, " S:N" | , " S:N" | ||||
, "INT" | , "INT" | ||||
, "CAPS" | , "CAPS" | ||||
); | ); | ||||
cp = buf; | cp = buf; | ||||
do { | do { | ||||
const struct ieee80211req_scan_result *sr; | const struct ieee80211req_scan_result *sr; | ||||
const uint8_t *vp, *idp; | const uint8_t *vp, *idp; | ||||
sr = (const struct ieee80211req_scan_result *) cp; | sr = (const struct ieee80211req_scan_result *) cp; | ||||
vp = cp + sr->isr_ie_off; | vp = cp + sr->isr_ie_off; | ||||
if (sr->isr_meshid_len) { | if (sr->isr_meshid_len) { | ||||
idp = vp + sr->isr_ssid_len; | idp = vp + sr->isr_ssid_len; | ||||
idlen = sr->isr_meshid_len; | idlen = sr->isr_meshid_len; | ||||
} else { | } else { | ||||
idp = vp; | idp = vp; | ||||
idlen = sr->isr_ssid_len; | idlen = sr->isr_ssid_len; | ||||
} | } | ||||
printf("%-*.*s %s %3d %3dM %4d:%-4d %4d %-4.4s" | printf("%-*.*s %s %3d %3dM %4d:%-4d %4d %-4.4s" | ||||
, ssidmax | , IEE80211_NWID_LEN | ||||
, copy_essid(ssid, ssidmax, idp, idlen) | , copy_essid(ssid, IEE80211_NWID_LEN, idp, idlen) | ||||
, ssid | , ssid | ||||
, ether_ntoa((const struct ether_addr *) sr->isr_bssid) | , ether_ntoa((const struct ether_addr *) sr->isr_bssid) | ||||
, ieee80211_mhz2ieee(sr->isr_freq, sr->isr_flags) | , ieee80211_mhz2ieee(sr->isr_freq, sr->isr_flags) | ||||
, getmaxrate(sr->isr_rates, sr->isr_nrates) | , getmaxrate(sr->isr_rates, sr->isr_nrates) | ||||
, (sr->isr_rssi/2)+sr->isr_noise, sr->isr_noise | , (sr->isr_rssi/2)+sr->isr_noise, sr->isr_noise | ||||
, sr->isr_intval | , sr->isr_intval | ||||
, getcaps(sr->isr_capinfo) | , getcaps(sr->isr_capinfo) | ||||
); | ); | ||||
▲ Show 20 Lines • Show All 2,240 Lines • Show Last 20 Lines |