Don't post scan results when initial scan is emtpy
authorDan Nicholson <dbn.lists@gmail.com>
Wed, 24 Sep 2008 09:51:08 +0000 (12:51 +0300)
committerJouni Malinen <j@w1.fi>
Wed, 24 Sep 2008 09:51:08 +0000 (12:51 +0300)
When the initial scan is made, just the cached results from the driver
are used. If this is empty, it's useless to post the results since
another scan is being scheduled immediately. This just causes extra
processing from listeners for no gain.

wpa_supplicant/events.c

index 0f9b338..04e3152 100644 (file)
@@ -551,9 +551,18 @@ static void wpa_supplicant_event_scan_results(struct wpa_supplicant *wpa_s)
                goto req_scan;
        }
 
-       wpa_msg(wpa_s, MSG_INFO, WPA_EVENT_SCAN_RESULTS);
-
-       wpa_supplicant_dbus_notify_scan_results(wpa_s);
+       /*
+        * Don't post the results if this was the initial cached
+        * and there were no results.
+        */
+       if (wpa_s->scan_res_tried == 1 && wpa_s->conf->ap_scan == 1 &&
+           wpa_s->scan_res->num == 0) {
+               wpa_msg(wpa_s, MSG_DEBUG, "Cached scan results are "
+                       "empty - not posting");
+       } else {
+               wpa_msg(wpa_s, MSG_INFO, WPA_EVENT_SCAN_RESULTS);
+               wpa_supplicant_dbus_notify_scan_results(wpa_s);
+       }
 
        if (wpa_s->conf->ap_scan == 2 || wpa_s->disconnected)
                return;