From 5f74ed75e72f9253bd1d45abf3caefbb9ab2b985 Mon Sep 17 00:00:00 2001 From: Denis Kenzior Date: Thu, 1 Aug 2024 23:28:47 -0500 Subject: [PATCH] nl80211util: Add builder for CMD_EXTERNAL_AUTH This is for sending status from the STA to the driver --- src/nl80211util.c | 15 +++++++++++++++ src/nl80211util.h | 5 +++++ 2 files changed, 20 insertions(+) diff --git a/src/nl80211util.c b/src/nl80211util.c index c1218c21..fcf70b9f 100644 --- a/src/nl80211util.c +++ b/src/nl80211util.c @@ -654,6 +654,21 @@ struct l_genl_msg *nl80211_build_cmd_frame(uint32_t ifindex, return msg; } +struct l_genl_msg *nl80211_build_external_auth(uint32_t ifindex, + uint16_t status_code, + const uint8_t *ssid, size_t ssid_len, + const uint8_t bssid[static 6]) +{ + struct l_genl_msg *msg = l_genl_msg_new(NL80211_CMD_EXTERNAL_AUTH); + + l_genl_msg_append_attr(msg, NL80211_ATTR_IFINDEX, 4, &ifindex); + l_genl_msg_append_attr(msg, NL80211_ATTR_STATUS_CODE, 2, &status_code); + l_genl_msg_append_attr(msg, NL80211_ATTR_SSID, ssid_len, ssid); + l_genl_msg_append_attr(msg, NL80211_ATTR_BSSID, 6, bssid); + + return msg; +} + int nl80211_parse_chandef(struct l_genl_msg *msg, struct band_chandef *out) { struct band_chandef t; diff --git a/src/nl80211util.h b/src/nl80211util.h index d966e049..67fd7d7b 100644 --- a/src/nl80211util.h +++ b/src/nl80211util.h @@ -87,6 +87,11 @@ struct l_genl_msg *nl80211_build_cmd_frame(uint32_t ifindex, struct iovec *iov, size_t iov_len); +struct l_genl_msg *nl80211_build_external_auth(uint32_t ifindex, + uint16_t status_code, + const uint8_t *ssid, size_t ssid_len, + const uint8_t bssid[static 6]); + int nl80211_parse_chandef(struct l_genl_msg *msg, struct band_chandef *out); int nl80211_parse_supported_frequencies(struct l_genl_attr *band_freqs, struct scan_freq_set *supported_list,