hostapd: allow ubus ban client address to be a broadcast address

This will allow del_client with ban_time on a broadcast address
to also ban all clients temporarily.

Signed-off-by: Rany Hany <rany_hany@riseup.net>
Link: https://github.com/openwrt/openwrt/pull/18670
Signed-off-by: Robert Marko <robimarko@gmail.com>
This commit is contained in:
Rany Hany 2025-05-01 17:06:20 +00:00 committed by Robert Marko
parent 5d7107ef63
commit 7f05a9af9a

View file

@ -1849,6 +1849,7 @@ ubus_event_cb(struct ubus_notify_request *req, int idx, int ret)
int hostapd_ubus_handle_event(struct hostapd_data *hapd, struct hostapd_ubus_request *req)
{
struct ubus_banned_client *ban;
const u8 bcast[ETH_ALEN] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
const char *types[HOSTAPD_UBUS_TYPE_MAX] = {
[HOSTAPD_UBUS_PROBE_REQ] = "probe",
[HOSTAPD_UBUS_AUTH_REQ] = "auth",
@ -1867,6 +1868,10 @@ int hostapd_ubus_handle_event(struct hostapd_data *hapd, struct hostapd_ubus_req
if (ban)
return WLAN_STATUS_AP_UNABLE_TO_HANDLE_NEW_STA;
ban = avl_find_element(&hapd->ubus.banned, bcast, ban, avl);
if (ban)
return WLAN_STATUS_AP_UNABLE_TO_HANDLE_NEW_STA;
if (!hapd->ubus.obj.has_subscribers)
return WLAN_STATUS_SUCCESS;