hostapd: fix frequency selection for ap+sta
Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 39426
This commit is contained in:
parent
5dcb4cc7d1
commit
2725913d2a
4 changed files with 23 additions and 13 deletions
|
@ -17,3 +17,13 @@
|
|||
if (!ssid->wpa_psk_set && ssid->wpa_psk && !ssid->wpa_psk->next &&
|
||||
ssid->wpa_passphrase_set && ssid->wpa_passphrase) {
|
||||
/*
|
||||
@@ -172,6 +182,9 @@ int hostapd_reload_config(struct hostapd
|
||||
oldconf = hapd->iconf;
|
||||
iface->conf = newconf;
|
||||
|
||||
+ if (iface->conf->channel)
|
||||
+ iface->freq = hostapd_hw_get_freq(hapd, iface->conf->channel);
|
||||
+
|
||||
for (j = 0; j < iface->num_bss; j++) {
|
||||
hapd = iface->bss[j];
|
||||
hapd->iconf = newconf;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/src/ap/hostapd.c
|
||||
+++ b/src/ap/hostapd.c
|
||||
@@ -1100,13 +1100,8 @@ int hostapd_setup_interface_complete(str
|
||||
@@ -1103,13 +1103,8 @@ int hostapd_setup_interface_complete(str
|
||||
size_t j;
|
||||
u8 *prev_addr;
|
||||
|
||||
|
@ -16,7 +16,7 @@
|
|||
|
||||
wpa_printf(MSG_DEBUG, "Completing interface initialization");
|
||||
if (iface->conf->channel) {
|
||||
@@ -1137,7 +1132,7 @@ int hostapd_setup_interface_complete(str
|
||||
@@ -1140,7 +1135,7 @@ int hostapd_setup_interface_complete(str
|
||||
hapd->iconf->vht_oper_centr_freq_seg1_idx)) {
|
||||
wpa_printf(MSG_ERROR, "Could not set channel for "
|
||||
"kernel driver");
|
||||
|
@ -25,7 +25,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
@@ -1148,7 +1143,7 @@ int hostapd_setup_interface_complete(str
|
||||
@@ -1151,7 +1146,7 @@ int hostapd_setup_interface_complete(str
|
||||
hostapd_logger(hapd, NULL, HOSTAPD_MODULE_IEEE80211,
|
||||
HOSTAPD_LEVEL_WARNING,
|
||||
"Failed to prepare rates table.");
|
||||
|
@ -34,7 +34,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
@@ -1156,14 +1151,14 @@ int hostapd_setup_interface_complete(str
|
||||
@@ -1159,14 +1154,14 @@ int hostapd_setup_interface_complete(str
|
||||
hostapd_set_rts(hapd, hapd->iconf->rts_threshold)) {
|
||||
wpa_printf(MSG_ERROR, "Could not set RTS threshold for "
|
||||
"kernel driver");
|
||||
|
@ -51,7 +51,7 @@
|
|||
}
|
||||
|
||||
prev_addr = hapd->own_addr;
|
||||
@@ -1173,7 +1168,7 @@ int hostapd_setup_interface_complete(str
|
||||
@@ -1176,7 +1171,7 @@ int hostapd_setup_interface_complete(str
|
||||
if (j)
|
||||
os_memcpy(hapd->own_addr, prev_addr, ETH_ALEN);
|
||||
if (hostapd_setup_bss(hapd, j == 0))
|
||||
|
@ -60,7 +60,7 @@
|
|||
if (hostapd_mac_comp_empty(hapd->conf->bssid) == 0)
|
||||
prev_addr = hapd->own_addr;
|
||||
}
|
||||
@@ -1188,7 +1183,7 @@ int hostapd_setup_interface_complete(str
|
||||
@@ -1191,7 +1186,7 @@ int hostapd_setup_interface_complete(str
|
||||
if (hostapd_driver_commit(hapd) < 0) {
|
||||
wpa_printf(MSG_ERROR, "%s: Failed to commit driver "
|
||||
"configuration", __func__);
|
||||
|
@ -69,7 +69,7 @@
|
|||
}
|
||||
|
||||
/*
|
||||
@@ -1213,6 +1208,13 @@ int hostapd_setup_interface_complete(str
|
||||
@@ -1216,6 +1211,13 @@ int hostapd_setup_interface_complete(str
|
||||
iface->interfaces->terminate_on_error--;
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
#include "ieee802_11_auth.h"
|
||||
#include "vlan_init.h"
|
||||
#include "wpa_auth.h"
|
||||
@@ -329,6 +330,7 @@ static void hostapd_cleanup(struct hosta
|
||||
@@ -332,6 +333,7 @@ static void hostapd_cleanup(struct hosta
|
||||
static void hostapd_cleanup_iface_partial(struct hostapd_iface *iface)
|
||||
{
|
||||
wpa_printf(MSG_DEBUG, "%s(%p)", __func__, iface);
|
||||
|
|
|
@ -498,7 +498,7 @@
|
|||
+#endif
|
||||
--- a/src/ap/hostapd.c
|
||||
+++ b/src/ap/hostapd.c
|
||||
@@ -262,6 +262,7 @@ static void hostapd_free_hapd_data(struc
|
||||
@@ -265,6 +265,7 @@ static void hostapd_free_hapd_data(struc
|
||||
hapd->started = 0;
|
||||
|
||||
wpa_printf(MSG_DEBUG, "%s(%s)", __func__, hapd->conf->iface);
|
||||
|
@ -506,7 +506,7 @@
|
|||
iapp_deinit(hapd->iapp);
|
||||
hapd->iapp = NULL;
|
||||
accounting_deinit(hapd);
|
||||
@@ -831,6 +832,8 @@ static int hostapd_setup_bss(struct host
|
||||
@@ -834,6 +835,8 @@ static int hostapd_setup_bss(struct host
|
||||
if (hapd->driver && hapd->driver->set_operstate)
|
||||
hapd->driver->set_operstate(hapd->drv_priv, 1);
|
||||
|
||||
|
@ -515,7 +515,7 @@
|
|||
return 0;
|
||||
}
|
||||
|
||||
@@ -1105,6 +1108,7 @@ int hostapd_setup_interface_complete(str
|
||||
@@ -1108,6 +1111,7 @@ int hostapd_setup_interface_complete(str
|
||||
if (err)
|
||||
goto error;
|
||||
|
||||
|
@ -523,7 +523,7 @@
|
|||
wpa_printf(MSG_DEBUG, "Completing interface initialization");
|
||||
if (iface->conf->channel) {
|
||||
#ifdef NEED_AP_MLME
|
||||
@@ -1213,6 +1217,7 @@ int hostapd_setup_interface_complete(str
|
||||
@@ -1216,6 +1220,7 @@ int hostapd_setup_interface_complete(str
|
||||
|
||||
error:
|
||||
wpa_printf(MSG_ERROR, "Interface initialization failed");
|
||||
|
@ -531,7 +531,7 @@
|
|||
hostapd_set_state(iface, HAPD_IFACE_DISABLED);
|
||||
if (iface->interfaces && iface->interfaces->terminate_on_error)
|
||||
eloop_terminate();
|
||||
@@ -1534,6 +1539,7 @@ void hostapd_interface_deinit_free(struc
|
||||
@@ -1537,6 +1542,7 @@ void hostapd_interface_deinit_free(struc
|
||||
(unsigned int) iface->conf->num_bss);
|
||||
driver = iface->bss[0]->driver;
|
||||
drv_priv = iface->bss[0]->drv_priv;
|
||||
|
|
Loading…
Reference in a new issue