Fix sending ANQP request to an unknown BSS while associated
While being associated, if an ANQP request is received for a different AP that doesn't exist in the BSS list, the ANQP request will be sent on the frequency of the AP that we are currently associated to. In such a case, it is possible that the ANQP request would be sent on a channel different than that of the requested AP, potentially delaying other requests/activities. Avoid sending the ANQP request to an AP that is not in the BSS list. Signed-off-by: Matti Gottlieb <matti.gottlieb@intel.com>
This commit is contained in:
parent
74197e0adf
commit
0c28071872
2 changed files with 16 additions and 12 deletions
|
@ -188,14 +188,16 @@ int hs20_anqp_send_req(struct wpa_supplicant *wpa_s, const u8 *dst, u32 stypes,
|
||||||
struct wpa_bss *bss;
|
struct wpa_bss *bss;
|
||||||
int res;
|
int res;
|
||||||
|
|
||||||
freq = wpa_s->assoc_freq;
|
|
||||||
bss = wpa_bss_get_bssid(wpa_s, dst);
|
bss = wpa_bss_get_bssid(wpa_s, dst);
|
||||||
if (bss) {
|
if (!bss) {
|
||||||
|
wpa_printf(MSG_WARNING,
|
||||||
|
"ANQP: Cannot send query to unknown BSS "
|
||||||
|
MACSTR, MAC2STR(dst));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
wpa_bss_anqp_unshare_alloc(bss);
|
wpa_bss_anqp_unshare_alloc(bss);
|
||||||
freq = bss->freq;
|
freq = bss->freq;
|
||||||
}
|
|
||||||
if (freq <= 0)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
wpa_printf(MSG_DEBUG, "HS20: ANQP Query Request to " MACSTR " for "
|
wpa_printf(MSG_DEBUG, "HS20: ANQP Query Request to " MACSTR " for "
|
||||||
"subtypes 0x%x", MAC2STR(dst), stypes);
|
"subtypes 0x%x", MAC2STR(dst), stypes);
|
||||||
|
|
|
@ -2673,14 +2673,16 @@ int anqp_send_req(struct wpa_supplicant *wpa_s, const u8 *dst,
|
||||||
struct wpa_bss *bss;
|
struct wpa_bss *bss;
|
||||||
int res;
|
int res;
|
||||||
|
|
||||||
freq = wpa_s->assoc_freq;
|
|
||||||
bss = wpa_bss_get_bssid(wpa_s, dst);
|
bss = wpa_bss_get_bssid(wpa_s, dst);
|
||||||
if (bss) {
|
if (!bss) {
|
||||||
|
wpa_printf(MSG_WARNING,
|
||||||
|
"ANQP: Cannot send query to unknown BSS "
|
||||||
|
MACSTR, MAC2STR(dst));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
wpa_bss_anqp_unshare_alloc(bss);
|
wpa_bss_anqp_unshare_alloc(bss);
|
||||||
freq = bss->freq;
|
freq = bss->freq;
|
||||||
}
|
|
||||||
if (freq <= 0)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
wpa_msg(wpa_s, MSG_DEBUG,
|
wpa_msg(wpa_s, MSG_DEBUG,
|
||||||
"ANQP: Query Request to " MACSTR " for %u id(s)",
|
"ANQP: Query Request to " MACSTR " for %u id(s)",
|
||||||
|
|
Loading…
Reference in a new issue