mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2024-11-22 06:29:23 +01:00
ap: check FULL_AP_CLIENT_STATE for NEW_STATION
nl80211 has a check which returns -EINVAL for NEW_STATION if this feature is not enabled and the mask contains Authenticated/Associated flags.
This commit is contained in:
parent
c57071df65
commit
fb8ef45213
17
src/ap.c
17
src/ap.c
@ -1643,19 +1643,22 @@ static struct l_genl_msg *ap_build_cmd_new_station(struct sta_state *sta)
|
|||||||
{
|
{
|
||||||
struct l_genl_msg *msg;
|
struct l_genl_msg *msg;
|
||||||
uint32_t ifindex = netdev_get_ifindex(sta->ap->netdev);
|
uint32_t ifindex = netdev_get_ifindex(sta->ap->netdev);
|
||||||
/*
|
|
||||||
* This should hopefully work both with and without
|
|
||||||
* NL80211_FEATURE_FULL_AP_CLIENT_STATE.
|
|
||||||
*/
|
|
||||||
struct nl80211_sta_flag_update flags = {
|
struct nl80211_sta_flag_update flags = {
|
||||||
.mask = (1 << NL80211_STA_FLAG_AUTHENTICATED) |
|
.mask = (1 << NL80211_STA_FLAG_AUTHORIZED) |
|
||||||
(1 << NL80211_STA_FLAG_ASSOCIATED) |
|
|
||||||
(1 << NL80211_STA_FLAG_AUTHORIZED) |
|
|
||||||
(1 << NL80211_STA_FLAG_MFP),
|
(1 << NL80211_STA_FLAG_MFP),
|
||||||
.set = (1 << NL80211_STA_FLAG_AUTHENTICATED) |
|
.set = (1 << NL80211_STA_FLAG_AUTHENTICATED) |
|
||||||
(1 << NL80211_STA_FLAG_ASSOCIATED),
|
(1 << NL80211_STA_FLAG_ASSOCIATED),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Without this feature nl80211 rejects NEW_STATION if the mask contains
|
||||||
|
* auth/assoc flags
|
||||||
|
*/
|
||||||
|
if (wiphy_has_feature(netdev_get_wiphy(sta->ap->netdev),
|
||||||
|
NL80211_FEATURE_FULL_AP_CLIENT_STATE))
|
||||||
|
flags.mask |= (1 << NL80211_STA_FLAG_ASSOCIATED) |
|
||||||
|
(1 << NL80211_STA_FLAG_AUTHENTICATED);
|
||||||
|
|
||||||
msg = l_genl_msg_new_sized(NL80211_CMD_NEW_STATION, 300);
|
msg = l_genl_msg_new_sized(NL80211_CMD_NEW_STATION, 300);
|
||||||
|
|
||||||
l_genl_msg_append_attr(msg, NL80211_ATTR_IFINDEX, 4, &ifindex);
|
l_genl_msg_append_attr(msg, NL80211_ATTR_IFINDEX, 4, &ifindex);
|
||||||
|
Loading…
Reference in New Issue
Block a user