diff options
Diffstat (limited to 'package/network/services/hostapd/patches/450-reload_freq_change.patch')
-rw-r--r-- | package/network/services/hostapd/patches/450-reload_freq_change.patch | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/package/network/services/hostapd/patches/450-reload_freq_change.patch b/package/network/services/hostapd/patches/450-reload_freq_change.patch new file mode 100644 index 0000000..bf48fe4 --- /dev/null +++ b/package/network/services/hostapd/patches/450-reload_freq_change.patch @@ -0,0 +1,27 @@ +--- 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; |