diff options
author | Jouni Malinen <j@w1.fi> | 2017-09-22 08:25:02 (GMT) |
---|---|---|
committer | Jouni Malinen <j@w1.fi> | 2017-10-15 23:03:47 (GMT) |
commit | adae51f8b94d63313a9a922b95a402ad3f182320 (patch) | |
tree | cb953e55c6e864dbcc5a32612f87d4a87b55aa9d /wpa_supplicant | |
parent | ff89af96e5a35c86f50330d2b86c18323318a60c (diff) | |
download | hostap-adae51f8b94d63313a9a922b95a402ad3f182320.zip hostap-adae51f8b94d63313a9a922b95a402ad3f182320.tar.gz hostap-adae51f8b94d63313a9a922b95a402ad3f182320.tar.bz2 |
WNM: Ignore WNM-Sleep Mode Response without pending request
Commit 03ed0a52393710be6bdae657d1b36efa146520e5 ('WNM: Ignore WNM-Sleep
Mode Response if WNM-Sleep Mode has not been used') started ignoring the
response when no WNM-Sleep Mode Request had been used during the
association. This can be made tighter by clearing the used flag when
successfully processing a response. This adds an additional layer of
protection against unexpected retransmissions of the response frame.
Signed-off-by: Jouni Malinen <j@w1.fi>
Diffstat (limited to 'wpa_supplicant')
-rw-r--r-- | wpa_supplicant/wnm_sta.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/wpa_supplicant/wnm_sta.c b/wpa_supplicant/wnm_sta.c index 7339ed2..28346ea 100644 --- a/wpa_supplicant/wnm_sta.c +++ b/wpa_supplicant/wnm_sta.c @@ -260,7 +260,7 @@ static void ieee802_11_rx_wnmsleep_resp(struct wpa_supplicant *wpa_s, if (!wpa_s->wnmsleep_used) { wpa_printf(MSG_DEBUG, - "WNM: Ignore WNM-Sleep Mode Response frame since WNM-Sleep Mode has not been used in this association"); + "WNM: Ignore WNM-Sleep Mode Response frame since WNM-Sleep Mode operation has not been requested"); return; } @@ -299,6 +299,8 @@ static void ieee802_11_rx_wnmsleep_resp(struct wpa_supplicant *wpa_s, return; } + wpa_s->wnmsleep_used = 0; + if (wnmsleep_ie->status == WNM_STATUS_SLEEP_ACCEPT || wnmsleep_ie->status == WNM_STATUS_SLEEP_EXIT_ACCEPT_GTK_UPDATE) { wpa_printf(MSG_DEBUG, "Successfully recv WNM-Sleep Response " |