Parcourir la source

dbus: Deauthenticate instead of disassociate on disconnect command

This clears up authentication state in the driver and in case of
cfg80211, unlocks the BSS entry for the previously used AP. The
previous commit cf4783e35fb4861181c275a3dbd607b58c7d4067 changed
only the ctrl_iface DISCONNECT command behavior; this new commit
does the same for D-Bus commands.
Jouni Malinen il y a 14 ans
Parent
commit
f9cd8587fb

+ 4 - 2
wpa_supplicant/dbus/dbus_new_handlers.c

@@ -1300,7 +1300,8 @@ DBusMessage * wpas_dbus_handler_disconnect(DBusMessage *message,
 {
 	if (wpa_s->current_ssid != NULL) {
 		wpa_s->disconnected = 1;
-		wpa_supplicant_disassociate(wpa_s, WLAN_REASON_DEAUTH_LEAVING);
+		wpa_supplicant_deauthenticate(wpa_s,
+					      WLAN_REASON_DEAUTH_LEAVING);
 
 		return NULL;
 	}
@@ -1433,7 +1434,8 @@ DBusMessage * wpas_dbus_handler_remove_network(DBusMessage *message,
 	}
 
 	if (ssid == wpa_s->current_ssid)
-		wpa_supplicant_disassociate(wpa_s, WLAN_REASON_DEAUTH_LEAVING);
+		wpa_supplicant_deauthenticate(wpa_s,
+					      WLAN_REASON_DEAUTH_LEAVING);
 
 out:
 	os_free(iface);

+ 3 - 2
wpa_supplicant/dbus/dbus_old_handlers.c

@@ -872,7 +872,8 @@ DBusMessage * wpas_dbus_iface_remove_network(DBusMessage *message,
 	}
 
 	if (ssid == wpa_s->current_ssid)
-		wpa_supplicant_disassociate(wpa_s, WLAN_REASON_DEAUTH_LEAVING);
+		wpa_supplicant_deauthenticate(wpa_s,
+					      WLAN_REASON_DEAUTH_LEAVING);
 	reply = wpas_dbus_new_success_reply(message);
 
 out:
@@ -1141,7 +1142,7 @@ DBusMessage * wpas_dbus_iface_disconnect(DBusMessage *message,
 					 struct wpa_supplicant *wpa_s)
 {
 	wpa_s->disconnected = 1;
-	wpa_supplicant_disassociate(wpa_s, WLAN_REASON_DEAUTH_LEAVING);
+	wpa_supplicant_deauthenticate(wpa_s, WLAN_REASON_DEAUTH_LEAVING);
 
 	return wpas_dbus_new_success_reply(message);
 }