Parcourir la source

Indicate disconnection event on interface disabled

It is possible for the disconnection event from the driver to not get
delivered when interface is disabled. To maintain consistent ctrl_iface
event behavior, indicate CTRL-EVENT-DISCONNECTED in such a case if we
were in connected state.

Signed-off-by: Jouni Malinen <j@w1.fi>
Jouni Malinen il y a 11 ans
Parent
commit
b7a6702fd4
1 fichiers modifiés avec 8 ajouts et 0 suppressions
  1. 8 0
      wpa_supplicant/events.c

+ 8 - 0
wpa_supplicant/events.c

@@ -3362,6 +3362,14 @@ void wpa_supplicant_event(void *ctx, enum wpa_event_type event,
 		}
 		}
 #endif /* CONFIG_P2P */
 #endif /* CONFIG_P2P */
 
 
+		if (wpa_s->wpa_state >= WPA_AUTHENTICATING) {
+			/*
+			 * Indicate disconnection to keep ctrl_iface events
+			 * consistent.
+			 */
+			wpa_supplicant_event_disassoc(
+				wpa_s, WLAN_REASON_DEAUTH_LEAVING, 1);
+		}
 		wpa_supplicant_mark_disassoc(wpa_s);
 		wpa_supplicant_mark_disassoc(wpa_s);
 		radio_remove_works(wpa_s, NULL, 0);
 		radio_remove_works(wpa_s, NULL, 0);