svn commit: r188188 - in projects/vap7/tools/tools/net80211: .
wlanstats
Sam Leffler
sam at FreeBSD.org
Thu Feb 5 12:40:45 PST 2009
Author: sam
Date: Thu Feb 5 20:40:43 2009
New Revision: 188188
URL: http://svn.freebsd.org/changeset/base/188188
Log:
merge r188187: minor fixups
Modified:
projects/vap7/tools/tools/net80211/ (props changed)
projects/vap7/tools/tools/net80211/wlanstats/wlanstats.c
Modified: projects/vap7/tools/tools/net80211/wlanstats/wlanstats.c
==============================================================================
--- projects/vap7/tools/tools/net80211/wlanstats/wlanstats.c Thu Feb 5 20:39:53 2009 (r188187)
+++ projects/vap7/tools/tools/net80211/wlanstats/wlanstats.c Thu Feb 5 20:40:43 2009 (r188188)
@@ -390,9 +390,12 @@ wlan_getopmode(struct wlanstatfoo *wf0)
strlcpy(ifmr.ifm_name, wf->ifr.ifr_name, sizeof(ifmr.ifm_name));
if (ioctl(wf->s, SIOCGIFMEDIA, &ifmr) < 0)
err(1, "%s (SIOCGIFMEDIA)", wf->ifr.ifr_name);
- if (ifmr.ifm_current & IFM_IEEE80211_ADHOC)
- wf->opmode = IEEE80211_M_IBSS; /* XXX ahdemo */
- else if (ifmr.ifm_current & IFM_IEEE80211_HOSTAP)
+ if (ifmr.ifm_current & IFM_IEEE80211_ADHOC) {
+ if (ifmr.ifm_current & IFM_FLAG0)
+ wf->opmode = IEEE80211_M_AHDEMO;
+ else
+ wf->opmode = IEEE80211_M_IBSS;
+ } else if (ifmr.ifm_current & IFM_IEEE80211_HOSTAP)
wf->opmode = IEEE80211_M_HOSTAP;
else if (ifmr.ifm_current & IFM_IEEE80211_MONITOR)
wf->opmode = IEEE80211_M_MONITOR;
@@ -422,6 +425,15 @@ getlladdr(struct wlanstatfoo_p *wf)
freeifaddrs(ifp);
}
+static int
+getbssid(struct wlanstatfoo_p *wf)
+{
+ wf->ireq.i_type = IEEE80211_IOC_BSSID;
+ wf->ireq.i_data = wf->mac;
+ wf->ireq.i_len = IEEE80211_ADDR_LEN;
+ return ioctl(wf->s, SIOCG80211, &wf->ireq);
+}
+
static void
wlan_setstamac(struct wlanstatfoo *wf0, const uint8_t *mac)
{
@@ -436,11 +448,9 @@ wlan_setstamac(struct wlanstatfoo *wf0,
getlladdr(wf);
break;
case IEEE80211_M_STA:
- wf->ireq.i_type = IEEE80211_IOC_BSSID;
- wf->ireq.i_data = wf->mac;
- wf->ireq.i_len = IEEE80211_ADDR_LEN;
- if (ioctl(wf->s, SIOCG80211, &wf->ireq) <0)
- err(1, "%s (IEEE80211_IOC_BSSID)", wf->ireq.i_name);
+ if (getbssid(wf) < 0)
+ err(1, "%s (IEEE80211_IOC_BSSID)",
+ wf->ireq.i_name);
break;
}
} else
@@ -457,15 +467,18 @@ wlan_collect(struct wlanstatfoo_p *wf,
wf->ireq.i_type = IEEE80211_IOC_STA_INFO;
wf->ireq.i_data = (caddr_t) &wf->u_info;
wf->ireq.i_len = sizeof(wf->u_info);
- if (ioctl(wf->s, SIOCG80211, &wf->ireq) < 0)
- warn("%s (IEEE80211_IOC_STA_INFO)", wf->ireq.i_name);
+ if (ioctl(wf->s, SIOCG80211, &wf->ireq) < 0) {
+ warn("%s:%s (IEEE80211_IOC_STA_INFO)", wf->ireq.i_name,
+ ether_ntoa((const struct ether_addr*) wf->mac));
+ }
IEEE80211_ADDR_COPY(nstats->is_u.macaddr, wf->mac);
wf->ireq.i_type = IEEE80211_IOC_STA_STATS;
wf->ireq.i_data = (caddr_t) nstats;
wf->ireq.i_len = sizeof(*nstats);
if (ioctl(wf->s, SIOCG80211, &wf->ireq) < 0)
- warn("%s (IEEE80211_IOC_STA_STATS)", wf->ireq.i_name);
+ warn("%s:%s (IEEE80211_IOC_STA_STATS)", wf->ireq.i_name,
+ ether_ntoa((const struct ether_addr*) wf->mac));
wf->ifr.ifr_data = (caddr_t) stats;
if (ioctl(wf->s, SIOCG80211STATS, &wf->ifr) < 0)
More information about the svn-src-projects
mailing list