Author: sam
Date: Thu Feb  5 23:15:39 2009
New Revision: 188210
URL: http://svn.freebsd.org/changeset/base/188210

Log:
  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

Modified:
  head/tools/tools/net80211/wlanstats/wlanstats.c

Modified: head/tools/tools/net80211/wlanstats/wlanstats.c
==============================================================================
--- head/tools/tools/net80211/wlanstats/wlanstats.c     Thu Feb  5 23:01:36 
2009        (r188209)
+++ head/tools/tools/net80211/wlanstats/wlanstats.c     Thu Feb  5 23:15:39 
2009        (r188210)
@@ -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)
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to