aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJouni Malinen <j@w1.fi>2015-11-01 18:26:35 (GMT)
committerJouni Malinen <j@w1.fi>2015-11-01 18:26:35 (GMT)
commitea6030c77f119056868e9b8df06f3200943c61ef (patch)
tree5ff8b5958cd6db6a4e05abefcd08a7a889b0295b
parent1e74ae4de95f70718c1cc433ad1cb03e1a886c4e (diff)
downloadhostap-ea6030c77f119056868e9b8df06f3200943c61ef.zip
hostap-ea6030c77f119056868e9b8df06f3200943c61ef.tar.gz
hostap-ea6030c77f119056868e9b8df06f3200943c61ef.tar.bz2
Restore previous wpa_state in scan-only result handler
The SCAN TYPE=ONLY results do not trigger a connection operation automatically. As such, there was no explicit operation that would change wpa_state after such a scan-only operation and WPA_SCANNING state could have been left in effect until the next operation is triggered by an external command. This is not desirable, so restore the wpa_state that was in use when the scan was started in case WPA_SCANNING state is still set when the scan operation completes. This was triggered by the following mac80211_hwsim test sequence: dbus_wps_oom scan_trigger_failure Signed-off-by: Jouni Malinen <j@w1.fi>
-rw-r--r--wpa_supplicant/scan.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/wpa_supplicant/scan.c b/wpa_supplicant/scan.c
index 2b41ca8..076766e 100644
--- a/wpa_supplicant/scan.c
+++ b/wpa_supplicant/scan.c
@@ -2148,6 +2148,9 @@ void scan_only_handler(struct wpa_supplicant *wpa_s,
wpa_s->scan_work = NULL;
radio_work_done(work);
}
+
+ if (wpa_s->wpa_state == WPA_SCANNING)
+ wpa_supplicant_set_state(wpa_s, wpa_s->scan_prev_wpa_state);
}