From 9adb9237bf9c569f5ea880e2628cce146e51e994 Mon Sep 17 00:00:00 2001 From: Sam Leffler Date: Thu, 5 Feb 2009 23:15:39 +0000 Subject: [PATCH] for adhoc and ahdemo modes try to find the "bss node": use the bssid unless it's not setup or zero's; this may not work as the bssid of the ibss isn't certain to the "right mac address" but for many cases it is --- tools/tools/net80211/wlanstats/wlanstats.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/tools/tools/net80211/wlanstats/wlanstats.c b/tools/tools/net80211/wlanstats/wlanstats.c index f774384e42f9..dd8e1063f8d7 100644 --- a/tools/tools/net80211/wlanstats/wlanstats.c +++ b/tools/tools/net80211/wlanstats/wlanstats.c @@ -437,15 +437,24 @@ getbssid(struct wlanstatfoo_p *wf) static void wlan_setstamac(struct wlanstatfoo *wf0, const uint8_t *mac) { + static const uint8_t zeromac[IEEE80211_ADDR_LEN]; struct wlanstatfoo_p *wf = (struct wlanstatfoo_p *) wf0; if (mac == NULL) { switch (wlan_getopmode(wf0)) { case IEEE80211_M_HOSTAP: case IEEE80211_M_MONITOR: + getlladdr(wf); + break; case IEEE80211_M_IBSS: case IEEE80211_M_AHDEMO: - getlladdr(wf); + /* + * NB: this may not work in which case the + * mac must be specified on the command line + */ + if (getbssid(wf) < 0 || + IEEE80211_ADDR_EQ(wf->mac, zeromac)) + getlladdr(wf); break; case IEEE80211_M_STA: if (getbssid(wf) < 0)