Fix disconnection event processing
authorJouni Malinen <jouni@qca.qualcomm.com>
Fri, 31 Aug 2012 19:04:41 +0000 (22:04 +0300)
committerJouni Malinen <j@w1.fi>
Fri, 31 Aug 2012 19:04:41 +0000 (22:04 +0300)
commit0aadd5682fc75f7ed442626bdb680b1b30aa3fae
treea223699676e26a1cfe6de3425cd37e10acb59540
parent6f1ca696c7f45659ad2bdacf90490ed680c01947
Fix disconnection event processing

Commit 0d30cc240fa36905b034dc9676f9d8da0ac18e56 forced
wpa_s->current_ssid and wpa_s->key_mgmt to be cleared in
wpa_supplicant_mark_disassoc() which gets called from
wpa_supplicant_event_disassoc(). This broke IEEE 802.1X authentication
failure processing and P2P deauthentication notification (group
termination).

Fix this by splitting wpa_supplicant_event_disassoc() into two parts and
make wpas_p2p_deauth_notif() indicate whether the interface was removed.
If so, the last part of disassocition event processing is skipped. Since
the wpa_supplicant_mark_disassoc() call is in the second part, the above
mentioned issues are resolved. In addition, this cleans up the P2P group
interface removal case by not trying to use fast reconnection mechanism
just before the interface gets removed.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
wpa_supplicant/events.c
wpa_supplicant/p2p_supplicant.c
wpa_supplicant/p2p_supplicant.h