From 0661163effbe99f143019fe1929f32c66cb00b94 Mon Sep 17 00:00:00 2001 From: Sunil Dutt Date: Mon, 24 Apr 2017 15:31:05 +0530 Subject: [PATCH] Do not blacklist the current AP on DISABLE_NETWORK Disconnection due to DISABLE_NETWORK while being connected was resulting in the AP getting blacklisted. Avoid this by setting own_disconnect_req on a disconnect request due to DISABLE_NETWORK similarly to the SELECT_NETWORK disconnection case. Signed-off-by: Jouni Malinen --- wpa_supplicant/wpa_supplicant.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c index 6d8ef11c8..56cc35c56 100644 --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c @@ -3149,13 +3149,19 @@ void wpa_supplicant_disable_network(struct wpa_supplicant *wpa_s, wpas_notify_network_enabled_changed( wpa_s, other_ssid); } - if (wpa_s->current_ssid) + if (wpa_s->current_ssid) { + if (wpa_s->wpa_state >= WPA_AUTHENTICATING) + wpa_s->own_disconnect_req = 1; wpa_supplicant_deauthenticate( wpa_s, WLAN_REASON_DEAUTH_LEAVING); + } } else if (ssid->disabled != 2) { - if (ssid == wpa_s->current_ssid) + if (ssid == wpa_s->current_ssid) { + if (wpa_s->wpa_state >= WPA_AUTHENTICATING) + wpa_s->own_disconnect_req = 1; wpa_supplicant_deauthenticate( wpa_s, WLAN_REASON_DEAUTH_LEAVING); + } was_disabled = ssid->disabled;