diff options
author | Felix Fietkau <nbd@openwrt.org> | 2010-11-09 01:36:36 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2010-11-09 01:36:36 +0000 |
commit | 327d4d9f67f3d0d6a98393568989696963a899bf (patch) | |
tree | 13dfb6bdb1febc4ea97165b737f51c20d004431a /package/hostapd/patches/390-mbss_reload_fix.patch | |
parent | 297b9756bca9f1de4fd5b33d076049c65287ec07 (diff) | |
download | mtk-20170518-327d4d9f67f3d0d6a98393568989696963a899bf.zip mtk-20170518-327d4d9f67f3d0d6a98393568989696963a899bf.tar.gz mtk-20170518-327d4d9f67f3d0d6a98393568989696963a899bf.tar.bz2 |
hostapd: update to 20101109, reorganize patches
SVN-Revision: 23932
Diffstat (limited to 'package/hostapd/patches/390-mbss_reload_fix.patch')
-rw-r--r-- | package/hostapd/patches/390-mbss_reload_fix.patch | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/package/hostapd/patches/390-mbss_reload_fix.patch b/package/hostapd/patches/390-mbss_reload_fix.patch new file mode 100644 index 0000000..e27bcb5 --- /dev/null +++ b/package/hostapd/patches/390-mbss_reload_fix.patch @@ -0,0 +1,89 @@ +--- a/src/ap/hostapd.c ++++ b/src/ap/hostapd.c +@@ -43,37 +43,8 @@ static int hostapd_setup_encryption(char + + extern int wpa_debug_level; + +- +-int hostapd_reload_config(struct hostapd_iface *iface) ++static int hostapd_reload_bss(struct hostapd_data *hapd) + { +- struct hostapd_data *hapd = iface->bss[0]; +- struct hostapd_config *newconf, *oldconf; +- size_t j; +- +- if (iface->config_read_cb == NULL) +- return -1; +- newconf = iface->config_read_cb(iface->config_fname); +- if (newconf == NULL) +- return -1; +- +- /* +- * Deauthenticate all stations since the new configuration may not +- * allow them to use the BSS anymore. +- */ +- for (j = 0; j < iface->num_bss; j++) +- hostapd_flush_old_stations(iface->bss[j]); +- +-#ifndef CONFIG_NO_RADIUS +- /* TODO: update dynamic data based on changed configuration +- * items (e.g., open/close sockets, etc.) */ +- radius_client_flush(hapd->radius, 0); +-#endif /* CONFIG_NO_RADIUS */ +- +- oldconf = hapd->iconf; +- hapd->iconf = newconf; +- hapd->conf = &newconf->bss[0]; +- iface->conf = newconf; +- + if (hostapd_setup_wpa_psk(hapd->conf)) { + wpa_printf(MSG_ERROR, "Failed to re-configure WPA PSK " + "after reloading configuration"); +@@ -111,10 +82,46 @@ int hostapd_reload_config(struct hostapd + wpa_printf(MSG_ERROR, "Could not set SSID for kernel driver"); + /* try to continue */ + } ++ wpa_printf(MSG_DEBUG, "Reconfigured interface %s", hapd->conf->iface); ++} ++ ++int hostapd_reload_config(struct hostapd_iface *iface) ++{ ++ struct hostapd_data *hapd = iface->bss[0]; ++ struct hostapd_config *newconf, *oldconf; ++ size_t j; ++ ++ if (iface->config_read_cb == NULL) ++ return -1; ++ newconf = iface->config_read_cb(iface->config_fname); ++ if (newconf == NULL) ++ return -1; ++ ++ /* ++ * Deauthenticate all stations since the new configuration may not ++ * allow them to use the BSS anymore. ++ */ ++ for (j = 0; j < iface->num_bss; j++) ++ hostapd_flush_old_stations(iface->bss[j]); ++ ++#ifndef CONFIG_NO_RADIUS ++ /* TODO: update dynamic data based on changed configuration ++ * items (e.g., open/close sockets, etc.) */ ++ radius_client_flush(hapd->radius, 0); ++#endif /* CONFIG_NO_RADIUS */ ++ ++ oldconf = hapd->iconf; ++ iface->conf = newconf; ++ ++ for (j = 0; j < iface->num_bss; j++) { ++ hapd = iface->bss[j]; ++ hapd->iconf = newconf; ++ hapd->conf = &newconf->bss[j]; ++ hostapd_reload_bss(hapd); ++ } + + hostapd_config_free(oldconf); + +- wpa_printf(MSG_DEBUG, "Reconfigured interface %s", hapd->conf->iface); + + return 0; + } |