Browse Source

Getting back to DISCONNECTED afer SCANNING

After transitioning from DISCONNECTED to SCANNING, we never go back
to DISCONNECTED even though scanning is done or failed.
We're thus stuck in SCANNING while scanning is actually done.
Samuel Ortiz 15 years ago
parent
commit
3180d7a208
2 changed files with 9 additions and 3 deletions
  1. 6 2
      wpa_supplicant/events.c
  2. 3 1
      wpa_supplicant/scan.c

+ 6 - 2
wpa_supplicant/events.c

@@ -650,10 +650,14 @@ static void wpa_supplicant_event_scan_results(struct wpa_supplicant *wpa_s)
 
 	wpas_notify_scan_done(wpa_s, 1);
 
-	if ((wpa_s->conf->ap_scan == 2 && !wpas_wps_searching(wpa_s)) ||
-	    wpa_s->disconnected)
+	if ((wpa_s->conf->ap_scan == 2 && !wpas_wps_searching(wpa_s)))
 		return;
 
+	if (wpa_s->disconnected) {
+		wpa_supplicant_set_state(wpa_s, WPA_DISCONNECTED);
+		return;
+	}
+
 	while (selected == NULL) {
 		for (prio = 0; prio < wpa_s->conf->num_prio; prio++) {
 			selected = wpa_supplicant_select_bss(

+ 3 - 1
wpa_supplicant/scan.c

@@ -191,8 +191,10 @@ static void wpa_supplicant_scan(void *eloop_ctx, void *timeout_ctx)
 	struct wpa_driver_scan_params params;
 	size_t max_ssids;
 
-	if (wpa_s->disconnected && !wpa_s->scan_req)
+	if (wpa_s->disconnected && !wpa_s->scan_req) {
+		wpa_supplicant_set_state(wpa_s, WPA_DISCONNECTED);
 		return;
+	}
 
 	if (!wpa_supplicant_enabled_networks(wpa_s->conf) &&
 	    !wpa_s->scan_req) {