hostapd: fix 350-nl80211_del_beacon_bss.patch
[openwrt/staging/jow.git] / package / network / services / hostapd / patches / 350-nl80211_del_beacon_bss.patch
index a2a03c04f7696d1f9b4119a6dc480431acb1b448..a88b63e913d2654c32d8cb91033aaa8e25dabaca 100644 (file)
@@ -1,24 +1,20 @@
 --- a/src/drivers/driver_nl80211.c
 +++ b/src/drivers/driver_nl80211.c
-@@ -2788,10 +2788,15 @@ static int wpa_driver_nl80211_del_beacon
-       struct nl_msg *msg;
+@@ -2938,11 +2938,11 @@ static int wpa_driver_nl80211_del_beacon
        struct wpa_driver_nl80211_data *drv = bss->drv;
  
-+      if (!bss->beacon_set)
-+              return 0;
-+
-+      bss->beacon_set = 0;
-+
        wpa_printf(MSG_DEBUG, "nl80211: Remove beacon (ifindex=%d)",
 -                 drv->ifindex);
 +                 bss->ifindex);
+       bss->beacon_set = 0;
+       bss->freq = 0;
        nl80211_put_wiphy_data_ap(bss);
 -      msg = nl80211_drv_msg(drv, 0, NL80211_CMD_DEL_BEACON);
 +      msg = nl80211_bss_msg(bss, 0, NL80211_CMD_DEL_BEACON);
-       return send_and_recv_msgs(drv, msg, NULL, NULL);
+       return send_and_recv_msgs(drv, msg, NULL, NULL, NULL, NULL);
  }
  
-@@ -5261,7 +5266,7 @@ static void nl80211_teardown_ap(struct i
+@@ -5661,7 +5661,7 @@ static void nl80211_teardown_ap(struct i
                nl80211_mgmt_unsubscribe(bss, "AP teardown");
  
        nl80211_put_wiphy_data_ap(bss);
@@ -27,7 +23,7 @@
  }
  
  
-@@ -7679,8 +7684,6 @@ static int wpa_driver_nl80211_if_remove(
+@@ -8120,8 +8120,6 @@ static int wpa_driver_nl80211_if_remove(
        } else {
                wpa_printf(MSG_DEBUG, "nl80211: First BSS - reassign context");
                nl80211_teardown_ap(bss);
                nl80211_destroy_bss(bss);
                if (!bss->added_if)
                        i802_set_iface_flags(bss, 0);
-@@ -8074,7 +8077,6 @@ static int wpa_driver_nl80211_deinit_ap(
-       if (!is_ap_interface(drv->nlmode))
-               return -1;
-       wpa_driver_nl80211_del_beacon(bss);
--      bss->beacon_set = 0;
-       /*
-        * If the P2P GO interface was dynamically added, then it is
-@@ -8094,7 +8096,6 @@ static int wpa_driver_nl80211_stop_ap(vo
-       if (!is_ap_interface(drv->nlmode))
-               return -1;
-       wpa_driver_nl80211_del_beacon(bss);
--      bss->beacon_set = 0;
-       return 0;
- }