Without the patch, the output of 'station dump' command looks weird in
some cases:
root@OpenWrt:/# iw dev wlan0 station dump
Station 00:21:27:cb:57:02 (on wlan0)
inactive time: 190 ms
rx bytes: 36652
rx packets: 149
tx bytes: 1998
tx packets: 16
tx retries: 0
tx failed: 0
signal: -31 ] dBm
signal avg: -30 [-32, -36] dBm
tx bitrate: 5.5 MBit/s
rx bitrate: 54.0 MBit/s
root@OpenWrt:/#
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28879
3c298f89-4303-0410-b956-
a3cf2f4a3e73
PKG_NAME:=iw
PKG_VERSION:=3.1
PKG_NAME:=iw
PKG_VERSION:=3.1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=http://wireless.kernel.org/download/iw/
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=http://wireless.kernel.org/download/iw/
--- a/station.c
+++ b/station.c
--- a/station.c
+++ b/station.c
-@@ -61,6 +61,31 @@ static void print_sta_bitrate(struct nla
+@@ -61,6 +61,33 @@ static void print_sta_bitrate(struct nla
+ cur += snprintf(cur, sizeof(buf) - (cur - buf), "%s%d", prefix,
+ (int8_t) nla_get_u8(attr));
+ }
+ cur += snprintf(cur, sizeof(buf) - (cur - buf), "%s%d", prefix,
+ (int8_t) nla_get_u8(attr));
+ }
-+ snprintf(cur, sizeof(buf) - (cur - buf), "] ");
++
++ if (i)
++ snprintf(cur, sizeof(buf) - (cur - buf), "] ");
static int print_sta_handler(struct nl_msg *msg, void *arg)
{
struct nlattr *tb[NL80211_ATTR_MAX + 1];
static int print_sta_handler(struct nl_msg *msg, void *arg)
{
struct nlattr *tb[NL80211_ATTR_MAX + 1];
-@@ -81,7 +106,10 @@ static int print_sta_handler(struct nl_m
+@@ -81,7 +108,10 @@ static int print_sta_handler(struct nl_m
[NL80211_STA_INFO_PLINK_STATE] = { .type = NLA_U8 },
[NL80211_STA_INFO_TX_RETRIES] = { .type = NLA_U32 },
[NL80211_STA_INFO_TX_FAILED] = { .type = NLA_U32 },
[NL80211_STA_INFO_PLINK_STATE] = { .type = NLA_U8 },
[NL80211_STA_INFO_TX_RETRIES] = { .type = NLA_U32 },
[NL80211_STA_INFO_TX_FAILED] = { .type = NLA_U32 },
nla_parse(tb, NL80211_ATTR_MAX, genlmsg_attrdata(gnlh, 0),
genlmsg_attrlen(gnlh, 0), NULL);
nla_parse(tb, NL80211_ATTR_MAX, genlmsg_attrdata(gnlh, 0),
genlmsg_attrlen(gnlh, 0), NULL);
-@@ -128,12 +156,18 @@ static int print_sta_handler(struct nl_m
+@@ -128,12 +158,18 @@ static int print_sta_handler(struct nl_m
if (sinfo[NL80211_STA_INFO_TX_FAILED])
printf("\n\ttx failed:\t%u",
nla_get_u32(sinfo[NL80211_STA_INFO_TX_FAILED]));
if (sinfo[NL80211_STA_INFO_TX_FAILED])
printf("\n\ttx failed:\t%u",
nla_get_u32(sinfo[NL80211_STA_INFO_TX_FAILED]));