From owner-svn-src-projects@FreeBSD.ORG Thu Feb 5 20:40:44 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 407FC1065688; Thu, 5 Feb 2009 20:40:44 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2E6358FC12; Thu, 5 Feb 2009 20:40:44 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n15KeirG038098; Thu, 5 Feb 2009 20:40:44 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n15KeiTn038097; Thu, 5 Feb 2009 20:40:44 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200902052040.n15KeiTn038097@svn.freebsd.org> From: Sam Leffler Date: Thu, 5 Feb 2009 20:40:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r188188 - in projects/vap7/tools/tools/net80211: . wlanstats X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Feb 2009 20:40:45 -0000 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)