[PATCH] hostapd: fix interface enabling/disabling and DFS
Michal Kazior
michal.kazior
Tue Nov 19 02:08:47 PST 2013
The `started` state was tracked incorrectly. It
also broke DFS as it was using
hostapd_enable/disable_iface() functions.
Signed-hostap: Michal Kazior <michal.kazior at tieto.com>
---
src/ap/hostapd.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/ap/hostapd.c b/src/ap/hostapd.c
index 51b1035..69e8956 100644
--- a/src/ap/hostapd.c
+++ b/src/ap/hostapd.c
@@ -243,6 +243,13 @@ static int hostapd_broadcast_wep_set(struct hostapd_data *hapd)
static void hostapd_free_hapd_data(struct hostapd_data *hapd)
{
+ if (!hapd->started) {
+ wpa_printf(MSG_ERROR, "%s: Interface %s wasn't started",
+ __func__, hapd->conf->iface);
+ return;
+ }
+ hapd->started = 0;
+
wpa_printf(MSG_DEBUG, "%s(%s)", __func__, hapd->conf->iface);
iapp_deinit(hapd->iapp);
hapd->iapp = NULL;
@@ -306,7 +313,6 @@ static void hostapd_cleanup(struct hostapd_data *hapd)
hapd->iface->interfaces->ctrl_iface_deinit)
hapd->iface->interfaces->ctrl_iface_deinit(hapd);
hostapd_free_hapd_data(hapd);
- hapd->started = 0;
}
--
1.8.4.rc3
More information about the Hostap
mailing list