--- 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;