hostapd: Reset hapd->interface_add properly
authorMichal Kazior <michal.kazior@tieto.com>
Wed, 28 May 2014 09:57:11 +0000 (11:57 +0200)
committerJouni Malinen <j@w1.fi>
Sat, 31 May 2014 12:49:38 +0000 (15:49 +0300)
This variable is updated when calling hostapd_if_add(), so it makes
sense to do the same thing when calling hostapd_if_remove().

Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
src/ap/hostapd.c

index 784da2a..768ba3a 100644 (file)
@@ -277,10 +277,14 @@ static void hostapd_free_hapd_data(struct hostapd_data *hapd)
 
        authsrv_deinit(hapd);
 
-       if (hapd->interface_added &&
-           hostapd_if_remove(hapd, WPA_IF_AP_BSS, hapd->conf->iface)) {
-               wpa_printf(MSG_WARNING, "Failed to remove BSS interface %s",
-                          hapd->conf->iface);
+       if (hapd->interface_added) {
+               hapd->interface_added = 0;
+               if (hostapd_if_remove(hapd, WPA_IF_AP_BSS, hapd->conf->iface)) {
+                       wpa_printf(MSG_WARNING,
+                                  "Failed to remove BSS interface %s",
+                                  hapd->conf->iface);
+                       hapd->interface_added = 1;
+               }
        }
 
        os_free(hapd->probereq_cb);