]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
FT: Move RxKH configuration clearing into a helper function
authorDariusz Kopka <dariusz@plume.com>
Mon, 15 Jan 2024 13:16:00 +0000 (14:16 +0100)
committerJouni Malinen <j@w1.fi>
Sat, 20 Jan 2024 08:19:25 +0000 (10:19 +0200)
This can be used as a shared function for reloading RxKHs at runtime.

Signed-off-by: Dariusz Kopka <dariusz@plume.com>
src/ap/ap_config.c
src/ap/ap_config.h

index 42987918927fa1e1b94def2efb70c13eba276538..26f64452733c6a4fff130802d0a2b0f4f79f8811 100644 (file)
@@ -699,6 +699,31 @@ void hostapd_config_clear_wpa_psk(struct hostapd_wpa_psk **l)
 }
 
 
+#ifdef CONFIG_IEEE80211R_AP
+void hostapd_config_clear_rxkhs(struct hostapd_bss_config *conf)
+{
+       struct ft_remote_r0kh *r0kh, *r0kh_prev;
+       struct ft_remote_r1kh *r1kh, *r1kh_prev;
+
+       r0kh = conf->r0kh_list;
+       conf->r0kh_list = NULL;
+       while (r0kh) {
+               r0kh_prev = r0kh;
+               r0kh = r0kh->next;
+               os_free(r0kh_prev);
+       }
+
+       r1kh = conf->r1kh_list;
+       conf->r1kh_list = NULL;
+       while (r1kh) {
+               r1kh_prev = r1kh;
+               r1kh = r1kh->next;
+               os_free(r1kh_prev);
+       }
+}
+#endif /* CONFIG_IEEE80211R_AP */
+
+
 static void hostapd_config_free_anqp_elem(struct hostapd_bss_config *conf)
 {
        struct anqp_element *elem;
@@ -831,26 +856,7 @@ void hostapd_config_free_bss(struct hostapd_bss_config *conf)
        os_free(conf->time_zone);
 
 #ifdef CONFIG_IEEE80211R_AP
-       {
-               struct ft_remote_r0kh *r0kh, *r0kh_prev;
-               struct ft_remote_r1kh *r1kh, *r1kh_prev;
-
-               r0kh = conf->r0kh_list;
-               conf->r0kh_list = NULL;
-               while (r0kh) {
-                       r0kh_prev = r0kh;
-                       r0kh = r0kh->next;
-                       os_free(r0kh_prev);
-               }
-
-               r1kh = conf->r1kh_list;
-               conf->r1kh_list = NULL;
-               while (r1kh) {
-                       r1kh_prev = r1kh;
-                       r1kh = r1kh->next;
-                       os_free(r1kh_prev);
-               }
-       }
+       hostapd_config_clear_rxkhs(conf);
 #endif /* CONFIG_IEEE80211R_AP */
 
 #ifdef CONFIG_WPS
index 7e7c340cde741bd26d4d55c693f159e9a6b97319..4c5401b2ce3542483d79bc12e5c7e39cb43b5034 100644 (file)
@@ -1348,6 +1348,7 @@ void hostapd_config_free_radius_attr(struct hostapd_radius_attr *attr);
 void hostapd_config_free_eap_user(struct hostapd_eap_user *user);
 void hostapd_config_free_eap_users(struct hostapd_eap_user *user);
 void hostapd_config_clear_wpa_psk(struct hostapd_wpa_psk **p);
+void hostapd_config_clear_rxkhs(struct hostapd_bss_config *conf);
 void hostapd_config_free_bss(struct hostapd_bss_config *conf);
 void hostapd_config_free(struct hostapd_config *conf);
 int hostapd_maclist_found(struct mac_acl_entry *list, int num_entries,