Skip SELECT_NETWORK steps only if already connected or connecting

Commit 2a6f78fbbe ('Do not re-associate on
SELECT_NETWORK to current network') started skipping all SELECT_NETWORK
connection steps if the selected network had already been selected
previously. This happened regardless of whether the connection was
already established. This is not necessarily desirable for all cases
where there is no immediate action to even try to connect (e.g., long
wait for the next scan).

Speed this up by allowing the SELECT_NETWORK operation to get started if
there is no connection or ongoing connection attempt with the selected
network.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
Jouni Malinen 2015-11-20 00:45:40 +02:00 committed by Jouni Malinen
parent 364418661d
commit d38c7be0f0

View file

@ -2725,7 +2725,8 @@ void wpa_supplicant_select_network(struct wpa_supplicant *wpa_s,
wpas_notify_network_enabled_changed(wpa_s, other_ssid); wpas_notify_network_enabled_changed(wpa_s, other_ssid);
} }
if (ssid && ssid == wpa_s->current_ssid && wpa_s->current_ssid) { if (ssid && ssid == wpa_s->current_ssid && wpa_s->current_ssid &&
wpa_s->wpa_state >= WPA_AUTHENTICATING) {
/* We are already associated with the selected network */ /* We are already associated with the selected network */
wpa_printf(MSG_DEBUG, "Already associated with the " wpa_printf(MSG_DEBUG, "Already associated with the "
"selected network - do nothing"); "selected network - do nothing");