X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fopenwrt.git;a=blobdiff_plain;f=package%2Fnetwork%2Fservices%2Fhostapd%2Fpatches%2F350-nl80211_del_beacon_bss.patch;h=d77ab4462fce6c905b29a57269003f3108b13079;hp=be10a413e602b34baad54921ea19fab8070bf961;hb=2f78034c3ef71bdeb1f2955aa8844b1d1ec70d3a;hpb=bd27331eeaf6cd1db9ad5b44c4f0f10f03b7911f diff --git a/package/network/services/hostapd/patches/350-nl80211_del_beacon_bss.patch b/package/network/services/hostapd/patches/350-nl80211_del_beacon_bss.patch index be10a413e6..d77ab4462f 100644 --- a/package/network/services/hostapd/patches/350-nl80211_del_beacon_bss.patch +++ b/package/network/services/hostapd/patches/350-nl80211_del_beacon_bss.patch @@ -1,72 +1,54 @@ --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c -@@ -2490,13 +2490,18 @@ wpa_driver_nl80211_finish_drv_init(struc - } - - --static int wpa_driver_nl80211_del_beacon(struct wpa_driver_nl80211_data *drv) -+static int wpa_driver_nl80211_del_beacon(struct i802_bss *bss) - { -+ struct wpa_driver_nl80211_data *drv = bss->drv; +@@ -2536,10 +2536,15 @@ static int wpa_driver_nl80211_del_beacon struct nl_msg *msg; + 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); -- msg = nl80211_drv_msg(drv, 0, NL80211_CMD_DEL_BEACON); + bss->ifindex); + 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); } -@@ -2548,7 +2553,7 @@ static void wpa_driver_nl80211_deinit(st - nl80211_remove_monitor_interface(drv); - - if (is_ap_interface(drv->nlmode)) -- wpa_driver_nl80211_del_beacon(drv); -+ wpa_driver_nl80211_del_beacon(bss); - - if (drv->eapol_sock >= 0) { - eloop_unregister_read_sock(drv->eapol_sock); -@@ -4703,8 +4708,7 @@ static void nl80211_teardown_ap(struct i - nl80211_remove_monitor_interface(drv); - else +@@ -4753,7 +4758,7 @@ static void nl80211_teardown_ap(struct i nl80211_mgmt_unsubscribe(bss, "AP teardown"); -- + + nl80211_put_wiphy_data_ap(bss); - bss->beacon_set = 0; + wpa_driver_nl80211_del_beacon(bss); } -@@ -6728,8 +6732,6 @@ static int wpa_driver_nl80211_if_remove( +@@ -6853,8 +6858,6 @@ static int wpa_driver_nl80211_if_remove( } else { wpa_printf(MSG_DEBUG, "nl80211: First BSS - reassign context"); nl80211_teardown_ap(bss); - if (!bss->added_if && !drv->first_bss->next) -- wpa_driver_nl80211_del_beacon(drv); +- wpa_driver_nl80211_del_beacon(bss); nl80211_destroy_bss(bss); if (!bss->added_if) i802_set_iface_flags(bss, 0); -@@ -7091,8 +7093,7 @@ static int wpa_driver_nl80211_deinit_ap( - struct wpa_driver_nl80211_data *drv = bss->drv; +@@ -7225,7 +7228,6 @@ static int wpa_driver_nl80211_deinit_ap( if (!is_ap_interface(drv->nlmode)) return -1; -- wpa_driver_nl80211_del_beacon(drv); + wpa_driver_nl80211_del_beacon(bss); - bss->beacon_set = 0; -+ wpa_driver_nl80211_del_beacon(bss); /* * If the P2P GO interface was dynamically added, then it is -@@ -7111,8 +7112,7 @@ static int wpa_driver_nl80211_stop_ap(vo - struct wpa_driver_nl80211_data *drv = bss->drv; +@@ -7245,7 +7247,6 @@ static int wpa_driver_nl80211_stop_ap(vo if (!is_ap_interface(drv->nlmode)) return -1; -- wpa_driver_nl80211_del_beacon(drv); + wpa_driver_nl80211_del_beacon(bss); - bss->beacon_set = 0; -+ wpa_driver_nl80211_del_beacon(bss); return 0; }