}
-int autoscan_init(struct wpa_supplicant *wpa_s)
+int autoscan_init(struct wpa_supplicant *wpa_s, int req_scan)
{
const char *name = wpa_s->conf->autoscan;
const char *params;
wpa_printf(MSG_DEBUG, "autoscan: Initialized module '%s' with "
"parameters '%s'", ops->name, params);
+ if (!req_scan)
+ return 0;
/*
* Cancelling existing scan requests, if any.
#ifdef CONFIG_AUTOSCAN
-int autoscan_init(struct wpa_supplicant *wpa_s);
+int autoscan_init(struct wpa_supplicant *wpa_s, int req_scan);
void autoscan_deinit(struct wpa_supplicant *wpa_s);
int autoscan_notify_scan(struct wpa_supplicant *wpa_s,
struct wpa_scan_results *scan_res);
#else /* CONFIG_AUTOSCAN */
-static inline int autoscan_init(struct wpa_supplicant *wpa_s)
+static inline int autoscan_init(struct wpa_supplicant *wpa_s, int req_scan)
{
return 0;
}
if (wpa_s->conf->autoscan == NULL)
autoscan_deinit(wpa_s);
else if (state == WPA_DISCONNECTED || state == WPA_INACTIVE)
- autoscan_init(wpa_s);
+ autoscan_init(wpa_s, 1);
return 0;
}
os_free(wpa_s->conf->autoscan);
wpa_s->conf->autoscan = tmp;
if (state == WPA_DISCONNECTED || state == WPA_INACTIVE)
- autoscan_init(wpa_s);
+ autoscan_init(wpa_s, 1);
}
} else if (arg != NULL && os_strlen(arg) == 0) {
os_free(wpa_s->conf->autoscan);
static void wpa_supplicant_start_autoscan(struct wpa_supplicant *wpa_s)
{
- if (autoscan_init(wpa_s))
+ if (autoscan_init(wpa_s, 0))
wpa_dbg(wpa_s, MSG_DEBUG, "Failed to initialize autoscan");
}
wpa_s->mgmt_group_cipher = 0;
wpa_s->key_mgmt = 0;
if (wpa_s->wpa_state != WPA_INTERFACE_DISABLED)
- wpa_s->wpa_state = WPA_DISCONNECTED;
+ wpa_supplicant_set_state(wpa_s, WPA_DISCONNECTED);
if (wpa_s->wpa_state != old_state)
wpas_notify_state_changed(wpa_s, wpa_s->wpa_state, old_state);
global->ifaces = wpa_s;
wpa_dbg(wpa_s, MSG_DEBUG, "Added interface %s", wpa_s->ifname);
+ wpa_supplicant_set_state(wpa_s, WPA_DISCONNECTED);
return wpa_s;
}