hostapd: update to version 2013-11-20
[openwrt.git] / package / network / services / hostapd / patches / 350-nl80211_del_beacon_bss.patch
1 --- a/src/drivers/driver_nl80211.c
2 +++ b/src/drivers/driver_nl80211.c
3 @@ -4290,18 +4290,20 @@ wpa_driver_nl80211_finish_drv_init(struc
4  }
5  
6  
7 -static int wpa_driver_nl80211_del_beacon(struct wpa_driver_nl80211_data *drv)
8 +static int wpa_driver_nl80211_del_bss_beacon(struct i802_bss *bss)
9  {
10 +       struct wpa_driver_nl80211_data *drv = bss->drv;
11         struct nl_msg *msg;
12  
13         msg = nlmsg_alloc();
14         if (!msg)
15                 return -ENOMEM;
16  
17 +       bss->beacon_set = 0;
18         wpa_printf(MSG_DEBUG, "nl80211: Remove beacon (ifindex=%d)",
19 -                  drv->ifindex);
20 +                  bss->ifindex);
21         nl80211_cmd(drv, msg, 0, NL80211_CMD_DEL_BEACON);
22 -       NLA_PUT_U32(msg, NL80211_ATTR_IFINDEX, drv->ifindex);
23 +       NLA_PUT_U32(msg, NL80211_ATTR_IFINDEX, bss->ifindex);
24  
25         return send_and_recv_msgs(drv, msg, NULL, NULL);
26   nla_put_failure:
27 @@ -4309,6 +4311,15 @@ static int wpa_driver_nl80211_del_beacon
28         return -ENOBUFS;
29  }
30  
31 +static int wpa_driver_nl80211_del_beacon(struct wpa_driver_nl80211_data *drv)
32 +{
33 +       struct i802_bss *bss;
34 +
35 +       for (bss = drv->first_bss; bss; bss = bss->next)
36 +               wpa_driver_nl80211_del_bss_beacon(bss);
37 +
38 +       return 0;
39 +}
40  
41  /**
42   * wpa_driver_nl80211_deinit - Deinitialize nl80211 driver interface
43 @@ -9911,7 +9922,6 @@ static int wpa_driver_nl80211_stop_ap(vo
44         if (!is_ap_interface(drv->nlmode))
45                 return -1;
46         wpa_driver_nl80211_del_beacon(drv);
47 -       bss->beacon_set = 0;
48         return 0;
49  }
50