diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/drivers/driver.h | 2 | ||||
-rw-r--r-- | src/drivers/driver_nl80211.c | 9 |
2 files changed, 7 insertions, 4 deletions
diff --git a/src/drivers/driver.h b/src/drivers/driver.h index 096891a..accc1e6 100644 --- a/src/drivers/driver.h +++ b/src/drivers/driver.h @@ -3405,6 +3405,7 @@ union wpa_event_data { /** * struct scan_info - Optional data for EVENT_SCAN_RESULTS events * @aborted: Whether the scan was aborted + * @is_sched_scan_res: Whether the scan results are from the sched scan * @freqs: Scanned frequencies in MHz (%NULL = all channels scanned) * @num_freqs: Number of entries in freqs array * @ssids: Scanned SSIDs (%NULL or zero-length SSID indicates wildcard @@ -3413,6 +3414,7 @@ union wpa_event_data { */ struct scan_info { int aborted; + int is_sched_scan_res; const int *freqs; size_t num_freqs; struct wpa_driver_scan_ssid ssids[WPAS_MAX_SCAN_SSIDS]; diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c index 9990944..2806d0f 100644 --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c @@ -1589,7 +1589,7 @@ static void mlme_event_remain_on_channel(struct wpa_driver_nl80211_data *drv, static void send_scan_event(struct wpa_driver_nl80211_data *drv, int aborted, - struct nlattr *tb[]) + int is_sched_scan_res, struct nlattr *tb[]) { union wpa_event_data event; struct nlattr *nl; @@ -1633,6 +1633,7 @@ static void send_scan_event(struct wpa_driver_nl80211_data *drv, int aborted, info->freqs = freqs; info->num_freqs = num_freqs; } + info->is_sched_scan_res = is_sched_scan_res; wpa_supplicant_event(drv->ctx, EVENT_SCAN_RESULTS, &event); } @@ -2131,12 +2132,12 @@ static void do_process_drv_event(struct wpa_driver_nl80211_data *drv, drv->scan_complete_events = 1; eloop_cancel_timeout(wpa_driver_nl80211_scan_timeout, drv, drv->ctx); - send_scan_event(drv, 0, tb); + send_scan_event(drv, 0, 0, tb); break; case NL80211_CMD_SCHED_SCAN_RESULTS: wpa_printf(MSG_DEBUG, "nl80211: New sched scan results available"); - send_scan_event(drv, 0, tb); + send_scan_event(drv, 0, 1, tb); break; case NL80211_CMD_SCAN_ABORTED: wpa_printf(MSG_DEBUG, "nl80211: Scan aborted"); @@ -2146,7 +2147,7 @@ static void do_process_drv_event(struct wpa_driver_nl80211_data *drv, */ eloop_cancel_timeout(wpa_driver_nl80211_scan_timeout, drv, drv->ctx); - send_scan_event(drv, 1, tb); + send_scan_event(drv, 1, 0, tb); break; case NL80211_CMD_AUTHENTICATE: case NL80211_CMD_ASSOCIATE: |