f86d282f43
While starting from PNO start context, the scheduled scan was not setting the flag wpa_s->scanning. This was resulting in the subsequent SCAN command to proceed further and send command to nl80211/cfg80211. The expected behavior of cancelling sched_scan was not happening here. While sched_scan is in progress and a legacy scan comes on the cli/socket, the sched_scan is cancelled and normal scan is allowed to continue. However, sometimes sched_scan cancelled event comes a bit delayed and we will send out the scan command before the wpa_s->scanning is cleared. Instead, reschedule the incoming scan req if the wpa_s->scanning shows that it is still in progress. Signed-hostap: Jithu Jance <jithu@broadcom.com>
47 lines
2 KiB
C
47 lines
2 KiB
C
/*
|
|
* WPA Supplicant - Scanning
|
|
* Copyright (c) 2003-2010, Jouni Malinen <j@w1.fi>
|
|
*
|
|
* This software may be distributed under the terms of the BSD license.
|
|
* See README for more details.
|
|
*/
|
|
|
|
#ifndef SCAN_H
|
|
#define SCAN_H
|
|
|
|
int wpa_supplicant_enabled_networks(struct wpa_supplicant *wpa_s);
|
|
void wpa_supplicant_req_scan(struct wpa_supplicant *wpa_s, int sec, int usec);
|
|
int wpa_supplicant_delayed_sched_scan(struct wpa_supplicant *wpa_s,
|
|
int sec, int usec);
|
|
int wpa_supplicant_req_sched_scan(struct wpa_supplicant *wpa_s);
|
|
void wpa_supplicant_cancel_scan(struct wpa_supplicant *wpa_s);
|
|
void wpa_supplicant_cancel_delayed_sched_scan(struct wpa_supplicant *wpa_s);
|
|
void wpa_supplicant_cancel_sched_scan(struct wpa_supplicant *wpa_s);
|
|
void wpa_supplicant_notify_scanning(struct wpa_supplicant *wpa_s,
|
|
int scanning);
|
|
struct wpa_driver_scan_params;
|
|
int wpa_supplicant_trigger_scan(struct wpa_supplicant *wpa_s,
|
|
struct wpa_driver_scan_params *params);
|
|
struct wpa_scan_results *
|
|
wpa_supplicant_get_scan_results(struct wpa_supplicant *wpa_s,
|
|
struct scan_info *info, int new_scan);
|
|
int wpa_supplicant_update_scan_results(struct wpa_supplicant *wpa_s);
|
|
const u8 * wpa_scan_get_ie(const struct wpa_scan_res *res, u8 ie);
|
|
const u8 * wpa_scan_get_vendor_ie(const struct wpa_scan_res *res,
|
|
u32 vendor_type);
|
|
const u8 * wpa_scan_get_vendor_ie_beacon(const struct wpa_scan_res *res,
|
|
u32 vendor_type);
|
|
struct wpabuf * wpa_scan_get_vendor_ie_multi(const struct wpa_scan_res *res,
|
|
u32 vendor_type);
|
|
int wpa_supplicant_filter_bssid_match(struct wpa_supplicant *wpa_s,
|
|
const u8 *bssid);
|
|
void wpa_supplicant_update_scan_int(struct wpa_supplicant *wpa_s, int sec);
|
|
void scan_only_handler(struct wpa_supplicant *wpa_s,
|
|
struct wpa_scan_results *scan_res);
|
|
int wpas_scan_scheduled(struct wpa_supplicant *wpa_s);
|
|
int wpa_supplicant_start_sched_scan(struct wpa_supplicant *wpa_s,
|
|
struct wpa_driver_scan_params *params,
|
|
int interval);
|
|
int wpa_supplicant_stop_sched_scan(struct wpa_supplicant *wpa_s);
|
|
|
|
#endif /* SCAN_H */
|