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 | 23 |
1 files changed, 23 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 0000000000..f11593fcd5 --- /dev/null +++ b/package/network/services/hostapd/patches/450-reload_freq_change.patch @@ -0,0 +1,23 @@ +--- a/src/ap/hostapd.c ++++ b/src/ap/hostapd.c +@@ -140,6 +140,20 @@ 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->secondary_channel)) { ++ 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; |