#!/usr/bin/lua local uci = require 'uci'.cursor() local ubus = require('ubus').connect() local neighbor_reports = {} local function hasKey(tab, key) for k, _ in pairs(tab) do if k == key then return true end end return false end uci:foreach('static-neighbor-report', 'neighbor', function (config) if hasKey(config, "disabled") and config.disabled ~= '0' then return end local bssid = '' local ssid = '' local neighbor_report = config['neighbor_report'] if hasKey(config, 'bssid') then bssid = config.bssid end if hasKey(config, 'ssid') then ssid = config.ssid end for iface in config.iface:gmatch("%S+") do if not hasKey(neighbor_reports, iface) then neighbor_reports[iface] = {} end table.insert(neighbor_reports[iface], {bssid, ssid, neighbor_report}) end end) for k, v in pairs(neighbor_reports) do ubus:call('hostapd.' .. k, 'rrm_nr_set', {list=v}) end