summaryrefslogtreecommitdiffstats
path: root/tools/tools
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2009-02-05 22:17:10 +0000
committersam <sam@FreeBSD.org>2009-02-05 22:17:10 +0000
commitd9be247f478f90aa920ebd36fba35df7332439c6 (patch)
treef0b2af585e547fd13b63f4054d6e356602f96511 /tools/tools
parent27217791ed175f38ef3d2903f53abc5301b177a8 (diff)
downloadFreeBSD-src-d9be247f478f90aa920ebd36fba35df7332439c6.zip
FreeBSD-src-d9be247f478f90aa920ebd36fba35df7332439c6.tar.gz
make -o handling like athstats
Diffstat (limited to 'tools/tools')
-rw-r--r--tools/tools/net80211/wlanstats/main.c39
1 files changed, 30 insertions, 9 deletions
diff --git a/tools/tools/net80211/wlanstats/main.c b/tools/tools/net80211/wlanstats/main.c
index 6c5e9f4..93843d5 100644
--- a/tools/tools/net80211/wlanstats/main.c
+++ b/tools/tools/net80211/wlanstats/main.c
@@ -48,10 +48,30 @@
#include "wlanstats.h"
-#define S_DEFAULT \
- "input,rx_mgmt,output,rx_badkeyid,scan_active,scan_bg,bmiss,rssi,noise,rate"
-#define S_AMPDU \
- "input,output,ampdu_reorder,ampdu_oor,rx_dup,ampdu_flush,ampdu_move,ampdu_drop,ampdu_bar,ampdu_baroow,ampdu_barmove,rssi,rate"
+static struct {
+ const char *tag;
+ const char *fmt;
+} tags[] = {
+ { "default",
+ "input,rx_mgmt,output,rx_badkeyid,scan_active,scan_bg,bmiss,rssi,noise,rate"
+ },
+ { "ampdu",
+ "input,output,ampdu_reorder,ampdu_oor,rx_dup,ampdu_flush,ampdu_move,"
+ "ampdu_drop,ampdu_bar,ampdu_baroow,ampdu_barmove,rssi,rate"
+ },
+};
+
+static const char *
+getfmt(const char *tag)
+{
+#define N(a) (sizeof(a)/sizeof(a[0]))
+ int i;
+ for (i = 0; i < N(tags); i++)
+ if (strcasecmp(tags[i].tag, tag) == 0)
+ return tags[i].fmt;
+ return tag;
+#undef N
+}
static int signalled;
@@ -138,10 +158,14 @@ main(int argc, char *argv[])
struct wlanstatfoo *wf;
struct ether_addr *ea;
const uint8_t *mac = NULL;
+ const char *ifname;
int allnodes = 0;
int c, mode;
- wf = wlanstats_new("wlan0", S_DEFAULT);
+ ifname = getenv("WLAN");
+ if (ifname == NULL)
+ ifname = "wlan0";
+ wf = wlanstats_new(ifname, getfmt("default"));
while ((c = getopt(argc, argv, "ai:lm:o:")) != -1) {
switch (c) {
case 'a':
@@ -160,10 +184,7 @@ main(int argc, char *argv[])
mac = ea->octet;
break;
case 'o':
- if (strcasecmp(optarg, "ampdu") == 0)
- wf->setfmt(wf, S_AMPDU);
- else
- wf->setfmt(wf, optarg);
+ wf->setfmt(wf, getfmt(optarg));
break;
default:
errx(-1, "usage: %s [-a] [-i ifname] [-l] [-o fmt] [interval]\n", argv[0]);
OpenPOWER on IntegriCloud