From 47e5fbde442e4105bd10e42703e4d820f6ad3b43 Mon Sep 17 00:00:00 2001 From: Peter Oh Date: Mon, 9 Feb 2015 13:23:53 -0800 Subject: [PATCH] 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 --- src/ap/sta_info.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/ap/sta_info.c b/src/ap/sta_info.c index eebaa3ce6..7e75e1a61 100644 --- a/src/ap/sta_info.c +++ b/src/ap/sta_info.c @@ -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)",