Message ID | 1433974675-19225-1-git-send-email-greearb@candelatech.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Johannes Berg |
Headers | show |
On Wed, 2015-06-10 at 18:17 -0400, greearb@candelatech.com wrote: > From: Ben Greear <greearb@candelatech.com> > > If the kernel sends the IFNAME in the netlink message, then > use it to save the call to map ifindex to name (and > potentially fix races, especially when kernel is > busy deleting an interface. Please split the "print new/del/stop events" part into a separate patch - I can apply that now. johannes -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 06/17/2015 02:14 AM, Johannes Berg wrote: > On Wed, 2015-06-10 at 18:17 -0400, greearb@candelatech.com wrote: >> From: Ben Greear <greearb@candelatech.com> >> >> If the kernel sends the IFNAME in the netlink message, then >> use it to save the call to map ifindex to name (and >> potentially fix races, especially when kernel is >> busy deleting an interface. > > Please split the "print new/del/stop events" part into a separate patch > - I can apply that now. Some existing events (interface-delete, I think) already have the ifname, by the way..so the iw patch is useful without any kernel changes. Thanks, Ben
On Wed, 2015-06-17 at 06:45 -0700, Ben Greear wrote: > > On 06/17/2015 02:14 AM, Johannes Berg wrote: > > On Wed, 2015-06-10 at 18:17 -0400, greearb@candelatech.com wrote: > > > From: Ben Greear <greearb@candelatech.com> > > > > > > If the kernel sends the IFNAME in the netlink message, then > > > use it to save the call to map ifindex to name (and > > > potentially fix races, especially when kernel is > > > busy deleting an interface. > > > > Please split the "print new/del/stop events" part into a separate > > patch > > - I can apply that now. > > Some existing events (interface-delete, I think) already have the > ifname, by the way..so the iw patch > is useful without any kernel changes. > Fair enough. Still, splitting the patch would make sense I think. johannes -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/event.c b/event.c index 929854b..b87a076 100644 --- a/event.c +++ b/event.c @@ -317,15 +317,22 @@ static int print_event(struct nl_msg *msg, void *arg) nla_parse(tb, NL80211_ATTR_MAX, genlmsg_attrdata(gnlh, 0), genlmsg_attrlen(gnlh, 0), NULL); - if (tb[NL80211_ATTR_IFINDEX] && tb[NL80211_ATTR_WIPHY]) { + ifname[0] = 0; + if (tb[NL80211_ATTR_IFNAME]) { + memset(ifname, 0, sizeof(ifname)); + strncpy(ifname, nla_data(tb[NL80211_ATTR_IFNAME]), IFNAMSIZ); + } + else if (tb[NL80211_ATTR_IFINDEX]) { if_indextoname(nla_get_u32(tb[NL80211_ATTR_IFINDEX]), ifname); + } + + if (ifname[0] && tb[NL80211_ATTR_WIPHY]) { printf("%s (phy #%d): ", ifname, nla_get_u32(tb[NL80211_ATTR_WIPHY])); } else if (tb[NL80211_ATTR_WDEV] && tb[NL80211_ATTR_WIPHY]) { printf("wdev 0x%llx (phy #%d): ", (unsigned long long)nla_get_u64(tb[NL80211_ATTR_WDEV]), nla_get_u32(tb[NL80211_ATTR_WIPHY])); - } else if (tb[NL80211_ATTR_IFINDEX]) { - if_indextoname(nla_get_u32(tb[NL80211_ATTR_IFINDEX]), ifname); + } else if (ifname[0]) { printf("%s: ", ifname); } else if (tb[NL80211_ATTR_WDEV]) { printf("wdev 0x%llx: ", (unsigned long long)nla_get_u64(tb[NL80211_ATTR_WDEV])); @@ -599,6 +606,15 @@ static int print_event(struct nl_msg *msg, void *arg) } printf("\n"); break; + case NL80211_CMD_STOP_AP: + printf("stop AP\n"); + break; + case NL80211_CMD_NEW_INTERFACE: + printf("new interface\n"); + break; + case NL80211_CMD_DEL_INTERFACE: + printf("delete interface\n"); + break; default: printf("unknown event %d (%s)\n", gnlh->cmd, command_name(gnlh->cmd));