mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2024-11-22 06:29:23 +01:00
scan: fixed flush flag parsing
Parsing the flush flag for external scans was not done correctly as it was not parsing the ATTR_SCAN_FLAGS but instead the flag bitmap. Fix this by parsing the flags attribute, then checking if the bit is set.
This commit is contained in:
parent
88a71eca72
commit
43d5e89fac
12
src/scan.c
12
src/scan.c
@ -2021,16 +2021,14 @@ static struct scan_context *scan_context_new(uint64_t wdev_id)
|
|||||||
|
|
||||||
static bool scan_parse_flush_flag_from_msg(struct l_genl_msg *msg)
|
static bool scan_parse_flush_flag_from_msg(struct l_genl_msg *msg)
|
||||||
{
|
{
|
||||||
struct l_genl_attr attr;
|
uint32_t flags;
|
||||||
uint16_t type, len;
|
|
||||||
const void *data;
|
|
||||||
|
|
||||||
if (!l_genl_attr_init(&attr, msg))
|
if (nl80211_parse_attrs(msg, NL80211_ATTR_SCAN_FLAGS, &flags,
|
||||||
|
NL80211_ATTR_UNSPEC) < 0)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
while (l_genl_attr_next(&attr, &type, &len, &data))
|
if (flags & NL80211_SCAN_FLAG_FLUSH)
|
||||||
if (type == NL80211_SCAN_FLAG_FLUSH)
|
return true;
|
||||||
return true;
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user