IBSS RSN: Clear IBSS RSN peers based on peer lost events
[mech_eap.git] / wpa_supplicant / events.c
index 5792eb5..fedf0cb 100644 (file)
@@ -1570,6 +1570,9 @@ wpa_supplicant_event_interface_status(struct wpa_supplicant *wpa_s,
                wpa_supplicant_mark_disassoc(wpa_s);
                l2_packet_deinit(wpa_s->l2);
                wpa_s->l2 = NULL;
+#ifdef CONFIG_IBSS_RSN
+               ibss_rsn_stop(wpa_s->ibss_rsn, NULL);
+#endif /* CONFIG_IBSS_RSN */
 #ifdef CONFIG_TERMINATE_ONLASTIF
                /* check if last interface */
                if (!any_interfaces(wpa_s->global->ifaces))
@@ -2178,6 +2181,11 @@ void wpa_supplicant_event(void *ctx, enum wpa_event_type event,
                                                  data->low_ack.addr);
 #endif /* CONFIG_AP */
                break;
+       case EVENT_IBSS_PEER_LOST:
+#ifdef CONFIG_IBSS_RSN
+               ibss_rsn_stop(wpa_s->ibss_rsn, data->ibss_peer_lost.peer);
+#endif /* CONFIG_IBSS_RSN */
+               break;
        default:
                wpa_msg(wpa_s, MSG_INFO, "Unknown event %d", event);
                break;