openwrtv4/package/network/services/hostapd/patches/450-reload_freq_change.patch

28 lines
836 B
Diff
Raw Normal View History

--- a/src/ap/hostapd.c
+++ b/src/ap/hostapd.c
@@ -140,6 +140,24 @@ int hostapd_reload_config(struct hostapd
oldconf = hapd->iconf;
iface->conf = newconf;
+ hostapd_select_hw_mode(iface);
+ iface->freq = hostapd_hw_get_freq(hapd, newconf->channel);
+
+ if (hostapd_set_freq(hapd, newconf->hw_mode, iface->freq,
+ newconf->channel,
+ newconf->ieee80211n,
+ newconf->ieee80211ac,
+ newconf->secondary_channel,
+ newconf->vht_oper_chwidth,
+ newconf->vht_oper_centr_freq_seg0_idx,
+ newconf->vht_oper_centr_freq_seg1_idx)) {
+ wpa_printf(MSG_ERROR, "Could not set channel for "
+ "kernel driver");
+ }
+
+ if (iface->current_mode)
+ hostapd_prepare_rates(iface, iface->current_mode);
+
for (j = 0; j < iface->num_bss; j++) {
hapd = iface->bss[j];
hapd->iconf = newconf;