From 7f05a9af9aebdc106a226cc41d20abfb53934a35 Mon Sep 17 00:00:00 2001 From: Rany Hany Date: Thu, 1 May 2025 17:06:20 +0000 Subject: [PATCH] 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 Link: https://github.com/openwrt/openwrt/pull/18670 Signed-off-by: Robert Marko --- package/network/services/hostapd/src/src/ap/ubus.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/package/network/services/hostapd/src/src/ap/ubus.c b/package/network/services/hostapd/src/src/ap/ubus.c index 6c23078a69..c1d68c34ff 100644 --- a/package/network/services/hostapd/src/src/ap/ubus.c +++ b/package/network/services/hostapd/src/src/ap/ubus.c @@ -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;