]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
hostapd: add raw beacon report data to ubus notification
authorJohn Crispin <john@phrozen.org>
Mon, 4 Aug 2025 05:37:47 +0000 (07:37 +0200)
committerFelix Fietkau <nbd@nbd.name>
Mon, 26 Jan 2026 17:46:16 +0000 (17:46 +0000)
Add the complete base64-encoded beacon report structure to the
"beacon-report" ubus notification event.

Signed-off-by: John Crispin <john@phrozen.org>
package/network/services/hostapd/src/src/ap/ubus.c

index ff0ea312df1684d84c5066edf740744edaca476b..247230a243fa847de4a989d5aaadfa37dd0bbf4d 100644 (file)
@@ -24,6 +24,7 @@
 #include "taxonomy.h"
 #include "airtime_policy.h"
 #include "hw_features.h"
+#include "base64.h"
 
 static struct ubus_context *ctx;
 static struct blob_buf b;
@@ -2005,6 +2006,8 @@ void hostapd_ubus_notify_beacon_report(
        struct hostapd_data *hapd, const u8 *addr, u8 token, u8 rep_mode,
        struct rrm_measurement_beacon_report *rep, size_t len)
 {
+       char *encoded;
+
        if (!hapd->ubus.obj.has_subscribers)
                return;
 
@@ -2024,7 +2027,11 @@ void hostapd_ubus_notify_beacon_report(
        blobmsg_add_u16(&b, "antenna-id", rep->antenna_id);
        blobmsg_add_u16(&b, "parent-tsf", rep->parent_tsf);
        blobmsg_add_u16(&b, "rep-mode", rep_mode);
-
+       encoded = base64_encode(rep, len, NULL);
+       if (encoded) {
+               blobmsg_add_string(&b, "report", encoded);
+               os_free(encoded);
+       }
        ubus_notify(ctx, &hapd->ubus.obj, "beacon-report", b.head, -1);
 }