diff --git a/src/ap/hostapd.h b/src/ap/hostapd.h index 03464089f..8d2dc2031 100644 --- a/src/ap/hostapd.h +++ b/src/ap/hostapd.h @@ -141,6 +141,10 @@ struct hostapd_data { union wps_event_data *data); void *wps_event_cb_ctx; + void (*sta_authorized_cb)(void *ctx, const u8 *mac_addr, + int authorized); + void *sta_authorized_cb_ctx; + #ifdef CONFIG_P2P struct p2p_data *p2p; struct p2p_group *p2p_group; diff --git a/src/ap/sta_info.c b/src/ap/sta_info.c index 7dee9ca6e..3818d065e 100644 --- a/src/ap/sta_info.c +++ b/src/ap/sta_info.c @@ -763,6 +763,10 @@ void ap_sta_set_authorized(struct hostapd_data *hapd, struct sta_info *sta, sta->flags |= WLAN_STA_AUTHORIZED; else sta->flags &= ~WLAN_STA_AUTHORIZED; + + if (hapd->sta_authorized_cb) + hapd->sta_authorized_cb(hapd->sta_authorized_cb_ctx, + sta->addr, authorized); }