From 9c7784e5f3c4e3e1f6d8ede0e20d2993e9c01c08 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Thu, 26 Mar 2015 23:33:47 +0000 Subject: hostapd: update hostapd to 2015-03-25 madwifi was dropped upstream, can't find it anywhere in OpenWrt either, thus finally burrying madwifi. Signed-off-by: Daniel Golle Signed-off-by: Felix Fietkau SVN-Revision: 45045 --- .../patches/350-nl80211_del_beacon_bss.patch | 74 ++++++++++++++-------- 1 file changed, 48 insertions(+), 26 deletions(-) (limited to 'package/network/services/hostapd/patches/350-nl80211_del_beacon_bss.patch') 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 46f0a2531c..a14fa03527 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,50 +1,72 @@ --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c -@@ -5083,18 +5083,20 @@ wpa_driver_nl80211_finish_drv_init(struc +@@ -2254,13 +2254,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_bss_beacon(struct i802_bss *bss) ++static int wpa_driver_nl80211_del_beacon(struct i802_bss *bss) { + struct wpa_driver_nl80211_data *drv = bss->drv; struct nl_msg *msg; - msg = nlmsg_alloc(); - if (!msg) - return -ENOMEM; - ++ 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_cmd(drv, msg, 0, NL80211_CMD_DEL_BEACON); -- NLA_PUT_U32(msg, NL80211_ATTR_IFINDEX, drv->ifindex); -+ NLA_PUT_U32(msg, NL80211_ATTR_IFINDEX, bss->ifindex); - ++ msg = nl80211_bss_msg(bss, 0, NL80211_CMD_DEL_BEACON); return send_and_recv_msgs(drv, msg, NULL, NULL); - nla_put_failure: -@@ -5102,6 +5104,15 @@ static int wpa_driver_nl80211_del_beacon - return -ENOBUFS; } -+static int wpa_driver_nl80211_del_beacon(struct wpa_driver_nl80211_data *drv) -+{ -+ struct i802_bss *bss; -+ -+ for (bss = drv->first_bss; bss; bss = bss->next) -+ wpa_driver_nl80211_del_bss_beacon(bss); -+ -+ return 0; -+} +@@ -2311,7 +2316,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); +@@ -4140,8 +4145,7 @@ static void nl80211_teardown_ap(struct i + nl80211_remove_monitor_interface(drv); + else + nl80211_mgmt_unsubscribe(bss, "AP teardown"); +- +- bss->beacon_set = 0; ++ wpa_driver_nl80211_del_beacon(bss); + } + + +@@ -6066,8 +6070,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); + nl80211_destroy_bss(bss); + if (!bss->added_if) + i802_set_iface_flags(bss, 0); +@@ -6389,8 +6391,7 @@ static int wpa_driver_nl80211_deinit_ap( + struct wpa_driver_nl80211_data *drv = bss->drv; + if (!is_ap_interface(drv->nlmode)) + return -1; +- wpa_driver_nl80211_del_beacon(drv); +- bss->beacon_set = 0; ++ wpa_driver_nl80211_del_beacon(bss); - /** - * wpa_driver_nl80211_deinit - Deinitialize nl80211 driver interface -@@ -11147,7 +11158,6 @@ static int wpa_driver_nl80211_stop_ap(vo + /* + * If the P2P GO interface was dynamically added, then it is +@@ -6409,8 +6410,7 @@ static int wpa_driver_nl80211_stop_ap(vo + struct wpa_driver_nl80211_data *drv = bss->drv; if (!is_ap_interface(drv->nlmode)) return -1; - wpa_driver_nl80211_del_beacon(drv); +- wpa_driver_nl80211_del_beacon(drv); - bss->beacon_set = 0; ++ wpa_driver_nl80211_del_beacon(bss); return 0; } -- cgit v1.2.3