diff options
| author | Felix Fietkau | 2025-07-05 18:45:48 +0000 |
|---|---|---|
| committer | Felix Fietkau | 2025-08-02 14:46:59 +0000 |
| commit | 3786d15561f6e3923eac9cdff4246226a96b589a (patch) | |
| tree | 377422620235cc1b110f43427e88a41267dcb90a | |
| parent | 217c31542330ad47907fb153d3232a15833698b1 (diff) | |
| download | openwrt-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.c | 7 |
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: |