On Tue, Jul 05, 2016 at 03:00:43PM +0200, Matthias May wrote: > When a 4addr client suddenly looses its connection (no deauth/deassoc) > the AP still thinks it is connected. > If the client reconnects before the AP timeoutes the client, traffic > cannot flow. > > Fix this by making sure the WLAN_STA_WDS flag is unset in the sta->flags > when the client completes association. > diff --git a/src/ap/ieee802_11.c b/src/ap/ieee802_11.c > @@ -2829,6 +2829,7 @@ static void handle_assoc_cb(struct hostapd_data *hapd, > new_assoc = 0; > sta->flags |= WLAN_STA_ASSOC; > sta->flags &= ~WLAN_STA_WNM_SLEEP_MODE; > + sta->flags &= ~WLAN_STA_WDS; This looks a bit strange taken into account this same handle_assoc_cb() function is using the WLAN_STA_WDS flag just below this: if (sta->flags & WLAN_STA_WDS) { int ret; char ifname_wds[IFNAMSIZ + 1]; ret = hostapd_set_wds_sta(hapd, ifname_wds, sta->addr, sta->aid, 1); if (!ret) hostapd_set_wds_encryption(hapd, sta, ifname_wds); } All that would become dead code if this patch were applied. Is this code really supposed to be removed? If so, these lines should be deleted as well. If not, this issue would likely need to be fixed in some other manner. -- Jouni Malinen PGP id EFC895FA _______________________________________________ Hostap mailing list Hostap@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/hostap