aboutsummaryrefslogtreecommitdiffstats
path: root/hostapd
diff options
context:
space:
mode:
authorJouni Malinen <j@w1.fi>2009-09-26 18:30:43 (GMT)
committerJouni Malinen <j@w1.fi>2009-09-26 18:30:43 (GMT)
commitc140a22858bb63222cd4f682e0b596b313ef0de9 (patch)
tree040405c80089ccefa95b6073ca213b41adc06338 /hostapd
parent40e107c1299deda181533d03eb8557580bc19ba0 (diff)
downloadhostap-c140a22858bb63222cd4f682e0b596b313ef0de9.zip
hostap-c140a22858bb63222cd4f682e0b596b313ef0de9.tar.gz
hostap-c140a22858bb63222cd4f682e0b596b313ef0de9.tar.bz2
Remove the STA entry on reassociation to clear STA PS state
hostapd needs to remove the old STA entry if it exists when processing reassociation back to the same AP. This removes the potentially PS buffered frames and allows association parameters to be updated with mac80211.
Diffstat (limited to 'hostapd')
-rw-r--r--hostapd/ieee802_11.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/hostapd/ieee802_11.c b/hostapd/ieee802_11.c
index 801048b..394dfab 100644
--- a/hostapd/ieee802_11.c
+++ b/hostapd/ieee802_11.c
@@ -1679,6 +1679,13 @@ static void handle_assoc_cb(struct hostapd_data *hapd,
sta->sa_query_timed_out = 0;
#endif /* CONFIG_IEEE80211W */
+ /*
+ * Remove the STA entry in order to make sure the STA PS state gets
+ * cleared and configuration gets updated in case of reassociation back
+ * to the same AP.
+ */
+ hostapd_sta_remove(hapd, sta->addr);
+
if (hostapd_sta_add(hapd->conf->iface, hapd, sta->addr, sta->aid,
sta->capability, sta->supported_rates,
sta->supported_rates_len, 0, sta->listen_interval,