aboutsummaryrefslogtreecommitdiffstats
path: root/hostapd/config_file.c
diff options
context:
space:
mode:
Diffstat (limited to 'hostapd/config_file.c')
-rw-r--r--hostapd/config_file.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/hostapd/config_file.c b/hostapd/config_file.c
index 5540059d..14ddad7f 100644
--- a/hostapd/config_file.c
+++ b/hostapd/config_file.c
@@ -3295,6 +3295,36 @@ static int hostapd_config_fill(struct hostapd_config *conf,
wpabuf_free(bss->vendor_elements);
bss->vendor_elements = elems;
+ } else if (os_strcmp(buf, "assocresp_elements") == 0) {
+ struct wpabuf *elems;
+ size_t len = os_strlen(pos);
+ if (len & 0x01) {
+ wpa_printf(MSG_ERROR,
+ "Line %d: Invalid assocresp_elements '%s'",
+ line, pos);
+ return 1;
+ }
+ len /= 2;
+ if (len == 0) {
+ wpabuf_free(bss->assocresp_elements);
+ bss->assocresp_elements = NULL;
+ return 0;
+ }
+
+ elems = wpabuf_alloc(len);
+ if (elems == NULL)
+ return 1;
+
+ if (hexstr2bin(pos, wpabuf_put(elems, len), len)) {
+ wpabuf_free(elems);
+ wpa_printf(MSG_ERROR,
+ "Line %d: Invalid assocresp_elements '%s'",
+ line, pos);
+ return 1;
+ }
+
+ wpabuf_free(bss->assocresp_elements);
+ bss->assocresp_elements = elems;
} else if (os_strcmp(buf, "sae_anti_clogging_threshold") == 0) {
bss->sae_anti_clogging_threshold = atoi(pos);
} else if (os_strcmp(buf, "sae_groups") == 0) {