From 18c6087d562cd4c78507a8cc7b6a1bb837145e76 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Tue, 11 Jul 2023 11:41:38 +0200 Subject: [PATCH] wifi-ax: backport hostapd reload support - fixes Signed-off-by: Felix Fietkau --- feeds/wifi-ax/hostapd/files/wpa_supplicant.uc | 4 +++- feeds/wifi-ax/hostapd/src/src/utils/ucode.c | 2 +- .../mac80211/files/lib/netifd/wireless/mac80211.sh | 14 +++++++------- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/feeds/wifi-ax/hostapd/files/wpa_supplicant.uc b/feeds/wifi-ax/hostapd/files/wpa_supplicant.uc index df9e0d2e9..22cb130e7 100644 --- a/feeds/wifi-ax/hostapd/files/wpa_supplicant.uc +++ b/feeds/wifi-ax/hostapd/files/wpa_supplicant.uc @@ -94,7 +94,9 @@ let main_obj = { return libubus.STATUS_INVALID_ARGUMENT; } - return 0; + return { + pid: wpas.getpid() + }; } }, config_add: { diff --git a/feeds/wifi-ax/hostapd/src/src/utils/ucode.c b/feeds/wifi-ax/hostapd/src/src/utils/ucode.c index 8767aea3d..fabf58a5e 100644 --- a/feeds/wifi-ax/hostapd/src/src/utils/ucode.c +++ b/feeds/wifi-ax/hostapd/src/src/utils/ucode.c @@ -208,7 +208,7 @@ uc_value_t *wpa_ucode_registry_remove(uc_value_t *reg, int idx) uc_value_t *val = wpa_ucode_registry_get(reg, idx); if (val) - ucv_array_delete(reg, idx - 1, 1); + ucv_array_set(reg, idx - 1, NULL); return val; } diff --git a/feeds/wifi-ax/mac80211/files/lib/netifd/wireless/mac80211.sh b/feeds/wifi-ax/mac80211/files/lib/netifd/wireless/mac80211.sh index fec655027..7002ef894 100644 --- a/feeds/wifi-ax/mac80211/files/lib/netifd/wireless/mac80211.sh +++ b/feeds/wifi-ax/mac80211/files/lib/netifd/wireless/mac80211.sh @@ -752,7 +752,7 @@ mac80211_setup_adhoc() { [ -n "$mcast_rate" ] && wpa_supplicant_add_rate mcval "$mcast_rate" local prev - json_set_namespace wdev prev + json_set_namespace wdev_uc prev json_add_object "$ifname" json_add_string mode adhoc @@ -778,7 +778,7 @@ mac80211_setup_mesh() { [ -n "$mesh_id" ] && ssid="$mesh_id" local prev - json_set_namespace wdev prev + json_set_namespace wdev_uc prev json_add_object "$ifname" json_add_string mode mesh @@ -797,7 +797,7 @@ mac80211_setup_mesh() { mac80211_setup_monitor() { local prev - json_set_namespace wdev prev + json_set_namespace wdev_uc prev json_add_object "$ifname" json_add_string mode monitor @@ -1073,13 +1073,13 @@ drv_mac80211_setup() { wpa_supp_init= for_each_interface "ap" mac80211_check_ap - mv "$hostapd_conf_file" "$hostapd_conf_file.prev" + [ -f "$hostapd_conf_file" ] && mv "$hostapd_conf_file" "$hostapd_conf_file.prev" for_each_interface "sta adhoc mesh" mac80211_set_noscan [ -n "$has_ap" ] && mac80211_hostapd_setup_base "$phy" local prev - json_set_namespace wdev prev + json_set_namespace wdev_uc prev json_init json_set_namespace "$prev" @@ -1104,8 +1104,8 @@ drv_mac80211_setup() { [ -n "$wpa_supp_init" ] && wpa_supplicant_start "$phy" - json_set_namespace wdev prev - wdev_tool "$(json_dump)" $active_ifnames + json_set_namespace wdev_uc prev + wdev_tool "$phy" "$(json_dump)" $active_ifnames json_set_namespace "$prev" for_each_interface "ap sta adhoc mesh monitor" mac80211_set_vif_txpower