From d2592497624d7dff53e71cc01fc2d5db1e59733e Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Wed, 23 Oct 2013 11:51:45 +0300 Subject: [PATCH] Fix ENABLE_NETWORK not to reconnect in disconnected state DISCONNECT followed by ENABLE_NETWORK ended up starting a scan for a new connection due to wpa_supplicant_enable_one_network() setting wpa_s->reassociate = 1. This was done regardless of wpa_s->disconnected being 1 which should imply that wpa_supplicant should not try to connect before asked explicitly with REASSOCIATE or RECONNECT. Fix this by making ENABLE_NETWORK setting of reassociate = 1 and starting of scans for connection conditional on wpa_s->disconnected == 0. This will make ENABLE_NETWORK trigger a connection only if wpa_supplicant is already in a state where it would try to connect if there are any enabled networks. Signed-hostap: Jouni Malinen --- wpa_supplicant/wpa_supplicant.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c index d9c6c10b4..4be84f021 100644 --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c @@ -1798,7 +1798,7 @@ static void wpa_supplicant_enable_one_network(struct wpa_supplicant *wpa_s, * Try to reassociate since there is no current configuration and a new * network was made available. */ - if (!wpa_s->current_ssid) + if (!wpa_s->current_ssid && !wpa_s->disconnected) wpa_s->reassociate = 1; } @@ -1819,7 +1819,7 @@ void wpa_supplicant_enable_network(struct wpa_supplicant *wpa_s, } else wpa_supplicant_enable_one_network(wpa_s, ssid); - if (wpa_s->reassociate) { + if (wpa_s->reassociate && !wpa_s->disconnected) { if (wpa_s->sched_scanning) { wpa_printf(MSG_DEBUG, "Stop ongoing sched_scan to add " "new network to scan filters");