GAS: Do not start new scan operation during an ongoing GAS query
These operations can have conflicting offchannel requirements, so wait with a new scan trigger until a pending GAS query has been completed. Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
parent
c377514337
commit
cbc5484892
3 changed files with 16 additions and 0 deletions
|
@ -598,3 +598,9 @@ void gas_query_cancel(struct gas_query *gas, const u8 *dst, u8 dialog_token)
|
|||
gas_query_done(gas, query, GAS_QUERY_CANCELLED);
|
||||
|
||||
}
|
||||
|
||||
|
||||
int gas_query_in_progress(struct gas_query *gas)
|
||||
{
|
||||
return gas->current != NULL;
|
||||
}
|
||||
|
|
|
@ -18,6 +18,7 @@ struct gas_query * gas_query_init(struct wpa_supplicant *wpa_s);
|
|||
void gas_query_deinit(struct gas_query *gas);
|
||||
int gas_query_rx(struct gas_query *gas, const u8 *da, const u8 *sa,
|
||||
const u8 *bssid, const u8 *data, size_t len, int freq);
|
||||
int gas_query_in_progress(struct gas_query *gas);
|
||||
|
||||
/**
|
||||
* enum gas_query_result - GAS query result
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
#include "hs20_supplicant.h"
|
||||
#include "notify.h"
|
||||
#include "bss.h"
|
||||
#include "gas_query.h"
|
||||
#include "scan.h"
|
||||
|
||||
|
||||
|
@ -604,6 +605,14 @@ static void wpa_supplicant_scan(void *eloop_ctx, void *timeout_ctx)
|
|||
}
|
||||
#endif /* CONFIG_P2P */
|
||||
|
||||
#ifdef CONFIG_GAS
|
||||
if (gas_query_in_progress(wpa_s->gas)) {
|
||||
wpa_dbg(wpa_s, MSG_DEBUG, "Delay scan while GAS query is in progress");
|
||||
wpa_supplicant_req_scan(wpa_s, 1, 0);
|
||||
return;
|
||||
}
|
||||
#endif /* CONFIG_GAS */
|
||||
|
||||
if (wpa_s->conf->ap_scan == 2)
|
||||
max_ssids = 1;
|
||||
else {
|
||||
|
|
Loading…
Reference in a new issue