Prevent explicit scan command during scan or association
authorDmitry Shmidt <dimitrysh@google.com>
Fri, 15 Apr 2011 15:40:29 +0000 (18:40 +0300)
committerJouni Malinen <j@w1.fi>
Fri, 15 Apr 2011 15:40:29 +0000 (18:40 +0300)
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
wpa_supplicant/ctrl_iface.c

index dd39f8b..7382abc 100644 (file)
@@ -3163,8 +3163,17 @@ char * wpa_supplicant_ctrl_iface_process(struct wpa_supplicant *wpa_s,
                if (wpa_s->wpa_state == WPA_INTERFACE_DISABLED)
                        reply_len = -1;
                else {
-                       wpa_s->scan_req = 2;
-                       wpa_supplicant_req_scan(wpa_s, 0, 0);
+                       if (!wpa_s->scanning &&
+                           ((wpa_s->wpa_state <= WPA_SCANNING) ||
+                            (wpa_s->wpa_state == WPA_COMPLETED))) {
+                               wpa_s->scan_req = 2;
+                               wpa_supplicant_req_scan(wpa_s, 0, 0);
+                       } else {
+                               wpa_printf(MSG_DEBUG, "Ongoing scan action - "
+                                          "reject new request");
+                               reply_len = os_snprintf(reply, reply_size,
+                                                       "FAIL-BUSY\n");
+                       }
                }
        } else if (os_strcmp(buf, "SCAN_RESULTS") == 0) {
                reply_len = wpa_supplicant_ctrl_iface_scan_results(