Remove unnecessary EVENT_RX_ACTION
This driver event was used separately for some Action frames, but all the driver wrappers converted to this from information that would have been enough to indicate an EVENT_RX_MGMT event. In addition, the received event was then converted back to a full IEEE 802.11 management frame for processing in most cases. This is unnecessary complexity, so get rid of the extra path and use EVENT_RX_MGMT for Action frames as well as other management frame subtypes. Signed-hostap: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
1450e1e319
commit
dbfb8e82ff
11 changed files with 173 additions and 297 deletions
|
@ -806,16 +806,10 @@ static void atheros_raw_recv_11r(void *ctx, const u8 *src_addr, const u8 *buf,
|
|||
drv_event_assoc(drv->hapd, mgmt->sa, iebuf, ielen, 1);
|
||||
break;
|
||||
case WLAN_FC_STYPE_ACTION:
|
||||
if (&mgmt->u.action.category > buf + len)
|
||||
break;
|
||||
os_memset(&event, 0, sizeof(event));
|
||||
event.rx_action.da = mgmt->da;
|
||||
event.rx_action.sa = mgmt->sa;
|
||||
event.rx_action.bssid = mgmt->bssid;
|
||||
event.rx_action.category = mgmt->u.action.category;
|
||||
event.rx_action.data = &mgmt->u.action.category;
|
||||
event.rx_action.len = buf + len - event.rx_action.data;
|
||||
wpa_supplicant_event(drv->hapd, EVENT_RX_ACTION, &event);
|
||||
event.rx_mgmt.frame = buf;
|
||||
event.rx_mgmt.frame_len = len;
|
||||
wpa_supplicant_event(drv->hapd, EVENT_RX_MGMT, &event);
|
||||
break;
|
||||
case WLAN_FC_STYPE_AUTH:
|
||||
if (len - IEEE80211_HDRLEN < sizeof(mgmt->u.auth))
|
||||
|
@ -954,16 +948,10 @@ static void atheros_raw_recv_11v(void *ctx, const u8 *src_addr, const u8 *buf,
|
|||
|
||||
switch (stype) {
|
||||
case WLAN_FC_STYPE_ACTION:
|
||||
if (&mgmt->u.action.category > buf + len)
|
||||
break;
|
||||
os_memset(&event, 0, sizeof(event));
|
||||
event.rx_action.da = mgmt->da;
|
||||
event.rx_action.sa = mgmt->sa;
|
||||
event.rx_action.bssid = mgmt->bssid;
|
||||
event.rx_action.category = mgmt->u.action.category;
|
||||
event.rx_action.data = &mgmt->u.action.category;
|
||||
event.rx_action.len = buf + len - event.rx_action.data;
|
||||
wpa_supplicant_event(drv->hapd, EVENT_RX_ACTION, &event);
|
||||
event.rx_mgmt.frame = buf;
|
||||
event.rx_mgmt.frame_len = len;
|
||||
wpa_supplicant_event(drv->hapd, EVENT_RX_MGMT, &event);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue