diff --git a/src/ap/beacon.c b/src/ap/beacon.c index 85c6ef3cf..5fe8fd566 100644 --- a/src/ap/beacon.c +++ b/src/ap/beacon.c @@ -592,7 +592,7 @@ static struct hostapd_sta_info * sta_track_get(struct hostapd_iface *iface, } -static void sta_track_add(struct hostapd_iface *iface, const u8 *addr) +void sta_track_add(struct hostapd_iface *iface, const u8 *addr) { struct hostapd_sta_info *info; diff --git a/src/ap/beacon.h b/src/ap/beacon.h index e183cde25..d98f42e81 100644 --- a/src/ap/beacon.h +++ b/src/ap/beacon.h @@ -21,6 +21,7 @@ int ieee802_11_update_beacons(struct hostapd_iface *iface); int ieee802_11_build_ap_params(struct hostapd_data *hapd, struct wpa_driver_ap_params *params); void ieee802_11_free_ap_params(struct wpa_driver_ap_params *params); +void sta_track_add(struct hostapd_iface *iface, const u8 *addr); void sta_track_expire(struct hostapd_iface *iface, int force); struct hostapd_data * sta_track_seen_on(struct hostapd_iface *iface, const u8 *addr, diff --git a/src/ap/ieee802_11.c b/src/ap/ieee802_11.c index 78355d660..19c6a12e0 100644 --- a/src/ap/ieee802_11.c +++ b/src/ap/ieee802_11.c @@ -2335,6 +2335,9 @@ int ieee802_11_mgmt(struct hostapd_data *hapd, const u8 *buf, size_t len, return 0; } + if (hapd->iconf->track_sta_max_num) + sta_track_add(hapd->iface, mgmt->sa); + switch (stype) { case WLAN_FC_STYPE_AUTH: wpa_printf(MSG_DEBUG, "mgmt::auth");