mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-20 06:08:08 +00:00
hostapd: improve channel switch support
Instead of requiring the user to call it on each BSS individually, run it on all BSSs internally. Signed-off-by: John Crispin <john@phrozen.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
parent
33c69aee41
commit
8e2ca15726
@ -728,6 +728,8 @@ hostapd_switch_chan(struct ubus_context *ctx, struct ubus_object *obj,
|
|||||||
struct blob_attr *tb[__CSA_MAX];
|
struct blob_attr *tb[__CSA_MAX];
|
||||||
struct hostapd_data *hapd = get_hapd_from_object(obj);
|
struct hostapd_data *hapd = get_hapd_from_object(obj);
|
||||||
struct csa_settings css;
|
struct csa_settings css;
|
||||||
|
int ret = UBUS_STATUS_OK;
|
||||||
|
int i;
|
||||||
|
|
||||||
blobmsg_parse(csa_policy, __CSA_MAX, tb, blob_data(msg), blob_len(msg));
|
blobmsg_parse(csa_policy, __CSA_MAX, tb, blob_data(msg), blob_len(msg));
|
||||||
|
|
||||||
@ -752,10 +754,14 @@ hostapd_switch_chan(struct ubus_context *ctx, struct ubus_object *obj,
|
|||||||
SET_CSA_SETTING(CSA_VHT, freq_params.vht_enabled, bool);
|
SET_CSA_SETTING(CSA_VHT, freq_params.vht_enabled, bool);
|
||||||
SET_CSA_SETTING(CSA_BLOCK_TX, block_tx, bool);
|
SET_CSA_SETTING(CSA_BLOCK_TX, block_tx, bool);
|
||||||
|
|
||||||
|
for (i = 0; i < hapd->iface->num_bss; i++) {
|
||||||
|
struct hostapd_data *bss = hapd->iface->bss[i];
|
||||||
|
|
||||||
if (hostapd_switch_channel(hapd, &css) != 0)
|
if (hostapd_switch_channel(bss, &css) != 0)
|
||||||
return UBUS_STATUS_NOT_SUPPORTED;
|
ret = UBUS_STATUS_NOT_SUPPORTED;
|
||||||
return UBUS_STATUS_OK;
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
#undef SET_CSA_SETTING
|
#undef SET_CSA_SETTING
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user