From: Michal Kazior Date: Tue, 19 Nov 2013 10:08:47 +0000 (+0100) Subject: hostapd: Fix interface enabling/disabling and DFS X-Git-Tag: hostap_2_1~509 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=68d628accd71b652ba504cc4166ae8c7d6b697a7;p=thirdparty%2Fhostap.git hostapd: Fix interface enabling/disabling and DFS The 'started' state was tracked incorrectly. It also broke DFS as it was using hostapd_enable/disable_iface() functions. Signed-hostap: Michal Kazior --- diff --git a/src/ap/hostapd.c b/src/ap/hostapd.c index 51b1035b8..69e895665 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; }