nl80211util: support attributes in CMD_EXTERNAL_AUTH

This commit is contained in:
Denis Kenzior 2024-07-31 22:41:08 -05:00
parent 02ec70e290
commit 17fbab110c
1 changed files with 13 additions and 0 deletions

View File

@ -132,6 +132,14 @@ static bool extract_iovec(const void *data, uint16_t len, void *o)
return true; return true;
} }
static bool extract_ssid(const void *data, uint16_t len, void *o)
{
if (!len || len > SSID_MAX_SIZE)
return false;
return extract_iovec(data, len, o);
}
static bool extract_nested(const void *data, uint16_t len, void *o) static bool extract_nested(const void *data, uint16_t len, void *o)
{ {
const struct l_genl_attr *outer = data; const struct l_genl_attr *outer = data;
@ -170,6 +178,7 @@ static attr_handler handler_for_nl80211(int type)
case NL80211_ATTR_REG_ALPHA2: case NL80211_ATTR_REG_ALPHA2:
return extract_2_chars; return extract_2_chars;
case NL80211_ATTR_MAC: case NL80211_ATTR_MAC:
case NL80211_ATTR_BSSID:
return extract_mac; return extract_mac;
case NL80211_ATTR_ACK: case NL80211_ATTR_ACK:
return extract_flag; return extract_flag;
@ -179,9 +188,13 @@ static attr_handler handler_for_nl80211(int type)
case NL80211_ATTR_CHANNEL_WIDTH: case NL80211_ATTR_CHANNEL_WIDTH:
case NL80211_ATTR_CENTER_FREQ1: case NL80211_ATTR_CENTER_FREQ1:
case NL80211_ATTR_CENTER_FREQ2: case NL80211_ATTR_CENTER_FREQ2:
case NL80211_ATTR_AKM_SUITES:
case NL80211_ATTR_EXTERNAL_AUTH_ACTION:
return extract_uint32; return extract_uint32;
case NL80211_ATTR_FRAME: case NL80211_ATTR_FRAME:
return extract_iovec; return extract_iovec;
case NL80211_ATTR_SSID:
return extract_ssid;
case NL80211_ATTR_WIPHY_BANDS: case NL80211_ATTR_WIPHY_BANDS:
case NL80211_ATTR_SURVEY_INFO: case NL80211_ATTR_SURVEY_INFO:
case NL80211_ATTR_KEY: case NL80211_ATTR_KEY: