From: Sunil Dutt Date: Mon, 24 Apr 2017 10:01:05 +0000 (+0530) Subject: Do not blacklist the current AP on DISABLE_NETWORK X-Git-Tag: hostap_2_7~1358 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0661163effbe99f143019fe1929f32c66cb00b94;p=thirdparty%2Fhostap.git 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 --- 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;