summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau2025-07-05 18:45:48 +0000
committerFelix Fietkau2025-08-02 14:46:59 +0000
commit3786d15561f6e3923eac9cdff4246226a96b589a (patch)
tree377422620235cc1b110f43427e88a41267dcb90a
parent217c31542330ad47907fb153d3232a15833698b1 (diff)
downloadopenwrt-3786d15561f6e3923eac9cdff4246226a96b589a.tar.gz
hostapd: fix bss config reload while in DFS state
Only start a BSS after a config change if it was started before. Signed-off-by: Felix Fietkau <nbd@nbd.name>
-rw-r--r--package/network/services/hostapd/src/src/ap/ucode.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/package/network/services/hostapd/src/src/ap/ucode.c b/package/network/services/hostapd/src/src/ap/ucode.c
index cbe2ee9506..081872ebe8 100644
--- a/package/network/services/hostapd/src/src/ap/ucode.c
+++ b/package/network/services/hostapd/src/src/ap/ucode.c
@@ -256,6 +256,7 @@ uc_hostapd_bss_set_config(uc_vm_t *vm, size_t nargs)
uc_value_t *files_only = uc_fn_arg(2);
unsigned int i, idx = 0;
int ret = -1;
+ bool started;
if (!hapd || ucv_type(file) != UC_STRING)
goto out;
@@ -287,6 +288,7 @@ uc_hostapd_bss_set_config(uc_vm_t *vm, size_t nargs)
goto free;
}
+ started = hapd->started;
__uc_hostapd_bss_stop(hapd);
old_bss = hapd->conf;
@@ -299,7 +301,10 @@ uc_hostapd_bss_set_config(uc_vm_t *vm, size_t nargs)
if (hapd == iface->bss[0])
memcpy(hapd->own_addr, hapd->conf->bssid, ETH_ALEN);
- ret = __uc_hostapd_bss_start(hapd);
+ if (started)
+ ret = __uc_hostapd_bss_start(hapd);
+ else
+ ret = 0;
hostapd_ucode_update_interfaces();
free: