nl80211: Register for IBSS auth frames before eloop
The IBSS code registers the bss nl_mgmt socket for auth frames when the join event happens, but that is too late as then the socket is already on the eloop, which could cause problems when other events are received at the same time as the registration is done. Move the auth frame registration to the initial setup before the socket is put onto the eloop. Signed-hostap: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
03610ad28d
commit
e8d1168b73
1 changed files with 7 additions and 6 deletions
|
@ -1830,8 +1830,6 @@ static void mlme_event_michael_mic_failure(struct i802_bss *bss,
|
|||
static void mlme_event_join_ibss(struct wpa_driver_nl80211_data *drv,
|
||||
struct nlattr *tb[])
|
||||
{
|
||||
u16 type = (WLAN_FC_TYPE_MGMT << 2) | (WLAN_FC_STYPE_AUTH << 4);
|
||||
|
||||
if (tb[NL80211_ATTR_MAC] == NULL) {
|
||||
wpa_printf(MSG_DEBUG, "nl80211: No address in IBSS joined "
|
||||
"event");
|
||||
|
@ -1839,10 +1837,6 @@ static void mlme_event_join_ibss(struct wpa_driver_nl80211_data *drv,
|
|||
}
|
||||
os_memcpy(drv->bssid, nla_data(tb[NL80211_ATTR_MAC]), ETH_ALEN);
|
||||
|
||||
/* register for any AUTH message */
|
||||
nl80211_register_frame(&drv->first_bss, drv->first_bss.nl_mgmt,
|
||||
type, NULL, 0);
|
||||
|
||||
drv->associated = 1;
|
||||
wpa_printf(MSG_DEBUG, "nl80211: IBSS " MACSTR " joined",
|
||||
MAC2STR(drv->bssid));
|
||||
|
@ -3805,6 +3799,13 @@ static int nl80211_mgmt_subscribe_non_ap(struct i802_bss *bss)
|
|||
wpa_printf(MSG_DEBUG, "nl80211: Subscribe to mgmt frames with non-AP "
|
||||
"handle %p", bss->nl_mgmt);
|
||||
|
||||
if (drv->nlmode == NL80211_IFTYPE_ADHOC) {
|
||||
u16 type = (WLAN_FC_TYPE_MGMT << 2) | (WLAN_FC_STYPE_AUTH << 4);
|
||||
|
||||
/* register for any AUTH message */
|
||||
nl80211_register_frame(bss, bss->nl_mgmt, type, NULL, 0);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_INTERWORKING
|
||||
/* QoS Map Configure */
|
||||
if (nl80211_register_action_frame(bss, (u8 *) "\x01\x04", 2) < 0)
|
||||
|
|
Loading…
Reference in a new issue