diff options
| author | Rany Hany | 2025-05-01 17:06:20 +0000 |
|---|---|---|
| committer | Robert Marko | 2025-12-08 16:26:07 +0000 |
| commit | 7f05a9af9aebdc106a226cc41d20abfb53934a35 (patch) | |
| tree | 6ad28dfd3367a75d87dadaf501f2d0675eff9729 | |
| parent | 5d7107ef637b0249ba1d4fee1e15e81e7f95332c (diff) | |
| download | openwrt-7f05a9af9aebdc106a226cc41d20abfb53934a35.tar.gz | |
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>
| -rw-r--r-- | package/network/services/hostapd/src/src/ap/ubus.c | 5 |
1 files changed, 5 insertions, 0 deletions
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; |