mirror of
https://github.com/immortalwrt/immortalwrt.git
synced 2025-08-14 14:19:53 +08:00
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>
This commit is contained in:
@ -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);
|
uc_value_t *files_only = uc_fn_arg(2);
|
||||||
unsigned int i, idx = 0;
|
unsigned int i, idx = 0;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
bool started;
|
||||||
|
|
||||||
if (!hapd || ucv_type(file) != UC_STRING)
|
if (!hapd || ucv_type(file) != UC_STRING)
|
||||||
goto out;
|
goto out;
|
||||||
@ -287,6 +288,7 @@ uc_hostapd_bss_set_config(uc_vm_t *vm, size_t nargs)
|
|||||||
goto free;
|
goto free;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
started = hapd->started;
|
||||||
__uc_hostapd_bss_stop(hapd);
|
__uc_hostapd_bss_stop(hapd);
|
||||||
|
|
||||||
old_bss = hapd->conf;
|
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])
|
if (hapd == iface->bss[0])
|
||||||
memcpy(hapd->own_addr, hapd->conf->bssid, ETH_ALEN);
|
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();
|
hostapd_ucode_update_interfaces();
|
||||||
|
|
||||||
free:
|
free:
|
||||||
|
Reference in New Issue
Block a user