|
@@ -1868,46 +1868,6 @@ static void do_process_drv_event(struct i802_bss *bss, int cmd,
|
|
|
}
|
|
|
|
|
|
|
|
|
-int process_drv_event(struct nl_msg *msg, void *arg)
|
|
|
-{
|
|
|
- struct wpa_driver_nl80211_data *drv = arg;
|
|
|
- struct genlmsghdr *gnlh = nlmsg_data(nlmsg_hdr(msg));
|
|
|
- struct nlattr *tb[NL80211_ATTR_MAX + 1];
|
|
|
- struct i802_bss *bss;
|
|
|
- int ifidx = -1;
|
|
|
-
|
|
|
- nla_parse(tb, NL80211_ATTR_MAX, genlmsg_attrdata(gnlh, 0),
|
|
|
- genlmsg_attrlen(gnlh, 0), NULL);
|
|
|
-
|
|
|
- if (tb[NL80211_ATTR_IFINDEX]) {
|
|
|
- ifidx = nla_get_u32(tb[NL80211_ATTR_IFINDEX]);
|
|
|
-
|
|
|
- for (bss = drv->first_bss; bss; bss = bss->next)
|
|
|
- if (ifidx == -1 || ifidx == bss->ifindex) {
|
|
|
- do_process_drv_event(bss, gnlh->cmd, tb);
|
|
|
- return NL_SKIP;
|
|
|
- }
|
|
|
- wpa_printf(MSG_DEBUG,
|
|
|
- "nl80211: Ignored event (cmd=%d) for foreign interface (ifindex %d)",
|
|
|
- gnlh->cmd, ifidx);
|
|
|
- } else if (tb[NL80211_ATTR_WDEV]) {
|
|
|
- u64 wdev_id = nla_get_u64(tb[NL80211_ATTR_WDEV]);
|
|
|
- wpa_printf(MSG_DEBUG, "nl80211: Process event on P2P device");
|
|
|
- for (bss = drv->first_bss; bss; bss = bss->next) {
|
|
|
- if (bss->wdev_id_set && wdev_id == bss->wdev_id) {
|
|
|
- do_process_drv_event(bss, gnlh->cmd, tb);
|
|
|
- return NL_SKIP;
|
|
|
- }
|
|
|
- }
|
|
|
- wpa_printf(MSG_DEBUG,
|
|
|
- "nl80211: Ignored event (cmd=%d) for foreign interface (wdev 0x%llx)",
|
|
|
- gnlh->cmd, (long long unsigned int) wdev_id);
|
|
|
- }
|
|
|
-
|
|
|
- return NL_SKIP;
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
int process_global_event(struct nl_msg *msg, void *arg)
|
|
|
{
|
|
|
struct nl80211_global *global = arg;
|
|
@@ -1940,6 +1900,9 @@ int process_global_event(struct nl_msg *msg, void *arg)
|
|
|
return NL_SKIP;
|
|
|
}
|
|
|
}
|
|
|
+ wpa_printf(MSG_DEBUG,
|
|
|
+ "nl80211: Ignored event (cmd=%d) for foreign interface (ifindex %d wdev 0x%llx)",
|
|
|
+ gnlh->cmd, ifidx, (long long unsigned int) wdev_id);
|
|
|
}
|
|
|
|
|
|
return NL_SKIP;
|