hostapd: Avoid sending client probe on removed client

Sending client probe on already removed client from kernel driver does
not have any benefit and may lead unintended behavior among variable
drivers (mac80211 has a WARN_ON() that could have been triggered after
ifconfig down+up earlier when hostapd did not re-enable beaconing on
ifup). Skip this step in discussion when the kernel driver reports that
client entry is removed.

Signed-off-by: Peter Oh <poh@qca.qualcomm.com>
This commit is contained in:
Peter Oh 2015-02-09 13:23:53 -08:00 committed by Jouni Malinen
parent 34782730c0
commit 47e5fbde44

View file

@ -375,8 +375,9 @@ void ap_handle_timer(void *eloop_ctx, void *timeout_ctx)
"Station " MACSTR " has lost its driver entry",
MAC2STR(sta->addr));
if (hapd->conf->skip_inactivity_poll)
sta->timeout_next = STA_DISASSOC;
/* Avoid sending client probe on removed client */
sta->timeout_next = STA_DISASSOC;
goto skip_poll;
} else if (inactive_sec < hapd->conf->ap_max_inactivity) {
/* station activity detected; reset timeout state */
wpa_msg(hapd->msg_ctx, MSG_DEBUG,
@ -409,6 +410,7 @@ void ap_handle_timer(void *eloop_ctx, void *timeout_ctx)
next_time = hapd->conf->ap_max_inactivity;
}
skip_poll:
if (next_time) {
wpa_printf(MSG_DEBUG, "%s: register ap_handle_timer timeout "
"for " MACSTR " (%lu seconds)",