]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
Document wpa_s->scan_req
authorJouni Malinen <j@w1.fi>
Sun, 25 Nov 2012 13:55:32 +0000 (15:55 +0200)
committerJouni Malinen <j@w1.fi>
Sun, 25 Nov 2012 13:55:32 +0000 (15:55 +0200)
Use an enum with documented values to make it easier to understand how
wpa_s->scan_req is used.

Signed-hostap: Jouni Malinen <j@w1.fi>

wpa_supplicant/autoscan.c
wpa_supplicant/ctrl_iface.c
wpa_supplicant/dbus/dbus_new_handlers.c
wpa_supplicant/dbus/dbus_old_handlers.c
wpa_supplicant/interworking.c
wpa_supplicant/scan.c
wpa_supplicant/wpa_supplicant.c
wpa_supplicant/wpa_supplicant_i.h

index d0c040a37755c44c3514cd3471d80ca4b7425c61..a2cf7a5ef23288655042c84d16de82de947ffc4e 100644 (file)
@@ -36,7 +36,7 @@ static const struct autoscan_ops * autoscan_modules[] = {
 
 static void request_scan(struct wpa_supplicant *wpa_s)
 {
-       wpa_s->scan_req = 2;
+       wpa_s->scan_req = MANUAL_SCAN_REQ;
 
        if (wpa_supplicant_req_sched_scan(wpa_s))
                wpa_supplicant_req_scan(wpa_s, wpa_s->scan_interval, 0);
index 8b84b40986018a111a46dcecf75f6645bba435f3..f47495d571f3ac4927550d46cb267317e71529e8 100644 (file)
@@ -5094,14 +5094,14 @@ char * wpa_supplicant_ctrl_iface_process(struct wpa_supplicant *wpa_s,
                            ((wpa_s->wpa_state <= WPA_SCANNING) ||
                             (wpa_s->wpa_state == WPA_COMPLETED))) {
                                wpa_s->normal_scans = 0;
-                               wpa_s->scan_req = 2;
+                               wpa_s->scan_req = MANUAL_SCAN_REQ;
                                wpa_supplicant_req_scan(wpa_s, 0, 0);
                        } else if (wpa_s->sched_scanning) {
                                wpa_printf(MSG_DEBUG, "Stop ongoing "
                                           "sched_scan to allow requested "
                                           "full scan to proceed");
                                wpa_supplicant_cancel_sched_scan(wpa_s);
-                               wpa_s->scan_req = 2;
+                               wpa_s->scan_req = MANUAL_SCAN_REQ;
                                wpa_supplicant_req_scan(wpa_s, 0, 0);
                        } else {
                                wpa_printf(MSG_DEBUG, "Ongoing scan action - "
index 72d1dfa22a5180b1c264f560cd0edc1bb9891872..a0b7479bfca696bd18014b4469d58e602057f195 100644 (file)
@@ -1313,7 +1313,7 @@ DBusMessage * wpas_dbus_handler_scan(DBusMessage *message,
                } else if (params.freqs && params.freqs[0]) {
                        wpa_supplicant_trigger_scan(wpa_s, &params);
                } else {
-                       wpa_s->scan_req = 2;
+                       wpa_s->scan_req = MANUAL_SCAN_REQ;
                        wpa_supplicant_req_scan(wpa_s, 0, 0);
                }
        } else if (!os_strcmp(type, "active")) {
index e217a72794ce7c7fc694ce0d68dbf12808890414..68e551524b85e70a7446fd3703a418eda6dc9f9c 100644 (file)
@@ -331,7 +331,7 @@ DBusMessage * wpas_dbus_global_set_debugparams(DBusMessage *message,
 DBusMessage * wpas_dbus_iface_scan(DBusMessage *message,
                                   struct wpa_supplicant *wpa_s)
 {
-       wpa_s->scan_req = 2;
+       wpa_s->scan_req = MANUAL_SCAN_REQ;
        wpa_supplicant_req_scan(wpa_s, 0, 0);
        return wpas_dbus_new_success_reply(message);
 }
index 320807ef380dd02cf494ff22b7981e73707e1ccb..cfe56ea99435fac41394ce7ae972f5bab39acb8c 100644 (file)
@@ -1964,7 +1964,7 @@ int interworking_select(struct wpa_supplicant *wpa_s, int auto_select)
        wpa_printf(MSG_DEBUG, "Interworking: Start scan for network "
                   "selection");
        wpa_s->scan_res_handler = interworking_scan_res_handler;
-       wpa_s->scan_req = 2;
+       wpa_s->scan_req = MANUAL_SCAN_REQ;
        wpa_supplicant_req_scan(wpa_s, 0, 0);
 
        return 0;
index e7f2e7125a8d0c0efc33d503b4237ace0b79a43e..82c5b78636da4a012845f025a03f1e896b2576c7 100644 (file)
@@ -505,7 +505,8 @@ static void wpa_supplicant_scan(void *eloop_ctx, void *timeout_ctx)
 {
        struct wpa_supplicant *wpa_s = eloop_ctx;
        struct wpa_ssid *ssid;
-       int scan_req = 0, ret;
+       enum scan_req_type scan_req = NORMAL_SCAN_REQ;
+       int ret;
        struct wpabuf *extra_ie = NULL;
        struct wpa_driver_scan_params params;
        struct wpa_driver_scan_params *scan_params;
@@ -517,14 +518,14 @@ static void wpa_supplicant_scan(void *eloop_ctx, void *timeout_ctx)
                return;
        }
 
-       if (wpa_s->disconnected && !wpa_s->scan_req) {
+       if (wpa_s->disconnected && wpa_s->scan_req == NORMAL_SCAN_REQ) {
                wpa_dbg(wpa_s, MSG_DEBUG, "Disconnected - do not scan");
                wpa_supplicant_set_state(wpa_s, WPA_DISCONNECTED);
                return;
        }
 
        if (!wpa_supplicant_enabled_networks(wpa_s) &&
-           !wpa_s->scan_req) {
+           wpa_s->scan_req == NORMAL_SCAN_REQ) {
                wpa_dbg(wpa_s, MSG_DEBUG, "No enabled networks - do not scan");
                wpa_supplicant_set_state(wpa_s, WPA_INACTIVE);
 #ifdef CONFIG_P2P
@@ -572,7 +573,7 @@ static void wpa_supplicant_scan(void *eloop_ctx, void *timeout_ctx)
        }
 
        scan_req = wpa_s->scan_req;
-       wpa_s->scan_req = 0;
+       wpa_s->scan_req = NORMAL_SCAN_REQ;
 
        os_memset(&params, 0, sizeof(params));
 
@@ -589,7 +590,7 @@ static void wpa_supplicant_scan(void *eloop_ctx, void *timeout_ctx)
                goto scan;
        }
 
-       if (scan_req != 2 && wpa_s->connect_without_scan) {
+       if (scan_req != MANUAL_SCAN_REQ && wpa_s->connect_without_scan) {
                for (ssid = wpa_s->conf->ssid; ssid; ssid = ssid->next) {
                        if (ssid == wpa_s->connect_without_scan)
                                break;
@@ -627,7 +628,7 @@ static void wpa_supplicant_scan(void *eloop_ctx, void *timeout_ctx)
                }
        }
 
-       if (scan_req != 2 && wpa_s->conf->ap_scan == 2) {
+       if (scan_req != MANUAL_SCAN_REQ && wpa_s->conf->ap_scan == 2) {
                wpa_s->connect_without_scan = NULL;
                wpa_s->prev_scan_wildcard = 0;
                wpa_supplicant_assoc_try(wpa_s, ssid);
@@ -762,7 +763,7 @@ scan:
         * station interface when we are not configured to prefer station
         * connection and a concurrent operation is already in process.
         */
-       if (wpa_s->scan_for_connection && !scan_req &&
+       if (wpa_s->scan_for_connection && scan_req == NORMAL_SCAN_REQ &&
            !scan_params->freqs && !params.freqs &&
            wpas_is_p2p_prioritized(wpa_s) &&
            !(wpa_s->drv_flags & WPA_DRIVER_FLAGS_MULTI_CHANNEL_CONCURRENT) &&
index e77edb50d7db44993011c1fcc0c2a6847f8be8de..a5bd58ae5a18dd272ae4d21ef77a4ea8b5762334 100644 (file)
@@ -1322,7 +1322,7 @@ void wpa_supplicant_associate(struct wpa_supplicant *wpa_s,
                   (ssid->key_mgmt & WPA_KEY_MGMT_WPS)) {
                /* Use ap_scan==1 style network selection to find the network
                 */
-               wpa_s->scan_req = 2;
+               wpa_s->scan_req = MANUAL_SCAN_REQ;
                wpa_s->reassociate = 1;
                wpa_supplicant_req_scan(wpa_s, 0, 0);
                return;
@@ -2413,7 +2413,7 @@ static struct wpa_supplicant * wpa_supplicant_alloc(void)
        wpa_s = os_zalloc(sizeof(*wpa_s));
        if (wpa_s == NULL)
                return NULL;
-       wpa_s->scan_req = 1;
+       wpa_s->scan_req = INITIAL_SCAN_REQ;
        wpa_s->scan_interval = 5;
        wpa_s->new_connection = 1;
        wpa_s->parent = wpa_s;
index 7fa5a88fde59e932935760c9265c367ec345ee34..071944d2bb96b8948a97a0cf2cd4aa9ffa7ed607 100644 (file)
@@ -397,8 +397,36 @@ struct wpa_supplicant {
 
        struct wpa_blacklist *blacklist;
 
-       int scan_req; /* manual scan request; this forces a scan even if there
-                      * are no enabled networks in the configuration */
+       /**
+        * scan_req - Type of the scan request
+        */
+       enum scan_req_type {
+               /**
+                * NORMAL_SCAN_REQ - Normal scan request
+                *
+                * This is used for scans initiated by wpa_supplicant to find an
+                * AP for a connection.
+                */
+               NORMAL_SCAN_REQ,
+
+               /**
+                * INITIAL_SCAN_REQ - Initial scan request
+                *
+                * This is used for the first scan on an interface to force at
+                * least one scan to be run even if the configuration does not
+                * include any enabled networks.
+                */
+               INITIAL_SCAN_REQ,
+
+               /**
+                * MANUAL_SCAN_REQ - Manual scan request
+                *
+                * This is used for scans where the user request a scan or
+                * a specific wpa_supplicant operation (e.g., WPS) requires scan
+                * to be run.
+                */
+               MANUAL_SCAN_REQ
+       } scan_req;
        int scan_runs; /* number of scan runs since WPS was started */
        int *next_scan_freqs;
        int scan_interval; /* time in sec between scans to find suitable AP */