aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2014-01-30 13:21:30 +0000
committerFelix Fietkau <nbd@openwrt.org>2014-01-30 13:21:30 +0000
commit2725913d2acca4774c41c7de0d8f4940615a3f1d (patch)
tree278d39cd419ec5c979de20b65564b8137e698705
parent5dcb4cc7d10872bd026e89b920759a016b10614e (diff)
downloadupstream-2725913d2acca4774c41c7de0d8f4940615a3f1d.tar.gz
upstream-2725913d2acca4774c41c7de0d8f4940615a3f1d.tar.bz2
upstream-2725913d2acca4774c41c7de0d8f4940615a3f1d.zip
hostapd: fix frequency selection for ap+sta
Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 39426
-rw-r--r--package/network/services/hostapd/patches/340-reload_freq_change.patch10
-rw-r--r--package/network/services/hostapd/patches/400-terminate_on_setup_failure.patch14
-rw-r--r--package/network/services/hostapd/patches/440-dynamic_20_40_mhz.patch2
-rw-r--r--package/network/services/hostapd/patches/600-ubus_support.patch10
4 files changed, 23 insertions, 13 deletions
diff --git a/package/network/services/hostapd/patches/340-reload_freq_change.patch b/package/network/services/hostapd/patches/340-reload_freq_change.patch
index d36b0460fa..9316794817 100644
--- a/package/network/services/hostapd/patches/340-reload_freq_change.patch
+++ b/package/network/services/hostapd/patches/340-reload_freq_change.patch
@@ -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;
diff --git a/package/network/services/hostapd/patches/400-terminate_on_setup_failure.patch b/package/network/services/hostapd/patches/400-terminate_on_setup_failure.patch
index 1270861e1e..0d9065ab2e 100644
--- a/package/network/services/hostapd/patches/400-terminate_on_setup_failure.patch
+++ b/package/network/services/hostapd/patches/400-terminate_on_setup_failure.patch
@@ -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;
diff --git a/package/network/services/hostapd/patches/440-dynamic_20_40_mhz.patch b/package/network/services/hostapd/patches/440-dynamic_20_40_mhz.patch
index f2d7795e81..905ec2c1b4 100644
--- a/package/network/services/hostapd/patches/440-dynamic_20_40_mhz.patch
+++ b/package/network/services/hostapd/patches/440-dynamic_20_40_mhz.patch
@@ -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);
diff --git a/package/network/services/hostapd/patches/600-ubus_support.patch b/package/network/services/hostapd/patches/600-ubus_support.patch
index 04af5da7de..96ac4f92da 100644
--- a/package/network/services/hostapd/patches/600-ubus_support.patch
+++ b/package/network/services/hostapd/patches/600-ubus_support.patch
@@ -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;