]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
Split BSS-specific hostapd_clear_old_bss() from hostapd_clear_old()
authorRaphaël Mélotte <raphael.melotte@mind.be>
Mon, 1 Aug 2022 11:08:21 +0000 (13:08 +0200)
committerJouni Malinen <j@w1.fi>
Sun, 27 Nov 2022 13:35:26 +0000 (15:35 +0200)
In hostapd_clear_old() multiple steps are needed to clear a BSS.
There are some places where it would be desirable to clear only some
BSSes and not all.

To make it easier to clear only some BSSes, split hostapd_clear_old()
with hostapd_clear_old_bss(), which does the same actions but on a
single BSS.

Signed-off-by: Raphaël Mélotte <raphael.melotte@mind.be>
src/ap/hostapd.c

index 3681df6a7c03ef881d2d6ccfd0f6eb99fdc992f1..4c3b1f05dd2965ff6c21fe7ce37fb3f6a9f10516 100644 (file)
@@ -172,27 +172,31 @@ static void hostapd_reload_bss(struct hostapd_data *hapd)
 }
 
 
-static void hostapd_clear_old(struct hostapd_iface *iface)
+static void hostapd_clear_old_bss(struct hostapd_data *bss)
 {
-       size_t j;
-
        /*
         * Deauthenticate all stations since the new configuration may not
         * allow them to use the BSS anymore.
         */
-       for (j = 0; j < iface->num_bss; j++) {
-               hostapd_flush_old_stations(iface->bss[j],
-                                          WLAN_REASON_PREV_AUTH_NOT_VALID);
+       hostapd_flush_old_stations(bss, WLAN_REASON_PREV_AUTH_NOT_VALID);
 #ifdef CONFIG_WEP
-               hostapd_broadcast_wep_clear(iface->bss[j]);
+       hostapd_broadcast_wep_clear(bss);
 #endif /* CONFIG_WEP */
 
 #ifndef CONFIG_NO_RADIUS
-               /* TODO: update dynamic data based on changed configuration
-                * items (e.g., open/close sockets, etc.) */
-               radius_client_flush(iface->bss[j]->radius, 0);
+       /* TODO: update dynamic data based on changed configuration
+        * items (e.g., open/close sockets, etc.) */
+       radius_client_flush(bss->radius, 0);
 #endif /* CONFIG_NO_RADIUS */
-       }
+}
+
+
+static void hostapd_clear_old(struct hostapd_iface *iface)
+{
+       size_t j;
+
+       for (j = 0; j < iface->num_bss; j++)
+               hostapd_clear_old_bss(iface->bss[j]);
 }