aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJouni Malinen <jouni@qca.qualcomm.com>2014-12-12 12:11:14 +0200
committerArne Coucheron <arco68@gmail.com>2015-02-14 12:35:50 +0100
commit2a291a0714327e1f8c27636e37be7664fa82f663 (patch)
tree290e1442da207421d523eae12b833bcb640c9679
parent370379b257b95f677f1b6eeb4ac00f3ec5f97b16 (diff)
downloadandroid_external_wpa_supplicant_8-2a291a0714327e1f8c27636e37be7664fa82f663.tar.gz
android_external_wpa_supplicant_8-2a291a0714327e1f8c27636e37be7664fa82f663.tar.bz2
android_external_wpa_supplicant_8-2a291a0714327e1f8c27636e37be7664fa82f663.zip
Reject new SCAN commands if there is a pending request
FAIL-BUSY was already returned for the case where a scan had been started, but with the radio work design, it would have been possible to schedule multiple scan requests if a non-scan radio work was in progress. Multiple back-to-back scans are not usually very helpful, so reject this type of cases where the SCAN command would be used to build such a sequence. CRs-Fixed: 774291 Git-commit: e69ae5ff319f549635a87c844b8a4f20c7289ca2 Git-repo : git://w1.fi/srv/git/hostap.git Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com> Change-Id: Idd14f540e573c07e2bb7ee71927b93b51b8f1d6f
-rw-r--r--wpa_supplicant/ctrl_iface.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/wpa_supplicant/ctrl_iface.c b/wpa_supplicant/ctrl_iface.c
index 5310eb7e..8ac2a0ca 100644
--- a/wpa_supplicant/ctrl_iface.c
+++ b/wpa_supplicant/ctrl_iface.c
@@ -6044,6 +6044,13 @@ static void wpas_ctrl_scan(struct wpa_supplicant *wpa_s, char *params,
wpa_s->manual_scan_only_new = 0;
wpa_s->scan_id_count = 0;
+ if (radio_work_pending(wpa_s, "scan")) {
+ wpa_printf(MSG_DEBUG,
+ "Pending scan scheduled - reject new request");
+ *reply_len = os_snprintf(reply, reply_size, "FAIL-BUSY\n");
+ return;
+ }
+
if (params) {
if (os_strncasecmp(params, "TYPE=ONLY", 9) == 0)
wpa_s->scan_res_handler = scan_only_handler;