]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
Fix ENABLE_NETWORK not to reconnect in disconnected state
authorJouni Malinen <jouni@qca.qualcomm.com>
Wed, 23 Oct 2013 08:51:45 +0000 (11:51 +0300)
committerJouni Malinen <j@w1.fi>
Wed, 23 Oct 2013 09:09:46 +0000 (12:09 +0300)
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 <jouni@qca.qualcomm.com>

wpa_supplicant/wpa_supplicant.c

index d9c6c10b4b37fd039cecf08e848b47a271b628ea..4be84f021267b09b3eacdeccc4b93874d6e15c22 100644 (file)
@@ -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");