[PATCH 09/15] scan: store vendor quirks in scan_bss
James Prestwood <[email protected]> Fri, 22 Aug 2025 12:51:12 -0700
| Newsgroups | dev.linux.lists.iwd |
|---|---|
| Message-ID | <[email protected]> |
As each vendor IE is parsed lookup if there are any quirks associated
with it, and store these in a bit mask.
---
src/scan.c | 6 ++++++
src/scan.h | 1 +
2 files changed, 7 insertions(+)
diff --git a/src/scan.c b/src/scan.c
index d9f27c83..b87c4621 100644
--- a/src/scan.c
+++ b/src/scan.c
@@ -51,6 +51,7 @@
#include "src/mpdu.h"
#include "src/band.h"
#include "src/scan.h"
+#include "src/vendor_quirks.h"
/* User configurable options */
static double RANK_2G_FACTOR;
@@ -1221,6 +1222,11 @@ static void scan_parse_vendor_specific(struct scan_bss *bss, const void *data,
uint16_t cost_flags;
bool dgaf_disable;
+ if (L_WARN_ON(len < 3))
+ return;
+
+ bss->vendor_quirks |= vendor_quirks(data);
+
if (!bss->wpa && is_ie_wpa_ie(data, len)) {
bss->wpa = l_memdup(data - 2, len + 2);
return;
diff --git a/src/scan.h b/src/scan.h
index 4c1ebc21..b2a63505 100644
--- a/src/scan.h
+++ b/src/scan.h
@@ -79,6 +79,7 @@ struct scan_bss {
uint8_t *wfd; /* Concatenated WFD IEs */
ssize_t wfd_size; /* Size of Concatenated WFD IEs */
int8_t snr;
+ uint32_t vendor_quirks;
bool mde_present : 1;
bool cc_present : 1;
bool cap_rm_neighbor_report : 1;
--
2.34.1