diff options
| author | Felix Fietkau | 2025-08-04 10:08:27 +0000 |
|---|---|---|
| committer | Felix Fietkau | 2025-08-04 10:08:29 +0000 |
| commit | 640c3984e31670be2aff1b60dd15c04a84bbbb7f (patch) | |
| tree | 33223cad67420ec7b67a4a655a97c64399707697 | |
| parent | de447b93e084862a105ecbddac1ea4d56309f888 (diff) | |
| download | openwrt-640c3984e31670be2aff1b60dd15c04a84bbbb7f.tar.gz | |
wifi-scripts: add support for passing wifi-device settings via procd
Allows either overriding individual device settings, or passing complete devices
Signed-off-by: Felix Fietkau <nbd@nbd.name>
| -rw-r--r-- | package/network/config/wifi-scripts/files/lib/netifd/wireless.uc | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/package/network/config/wifi-scripts/files/lib/netifd/wireless.uc b/package/network/config/wifi-scripts/files/lib/netifd/wireless.uc index a1ec40d79e..956ca54413 100644 --- a/package/network/config/wifi-scripts/files/lib/netifd/wireless.uc +++ b/package/network/config/wifi-scripts/files/lib/netifd/wireless.uc @@ -186,6 +186,41 @@ function config_init(uci) object: "service", method: "get_data", data: { + type: "wifi-device" + }, + }); + for (let svcname, svc in udata) { + for (let typename, data in svc) { + for (let radio, config in data) { + if (type(config) != "object") + continue; + + let dev = devices[radio]; + if (dev) { + dev.config = { ...dev.config, ...config }; + continue; + } + + let handler = wireless.handlers[config.type]; + if (!handler) + continue; + + dev = devices[radio] = { + name, + config, + + vif: [], + }; + handlers[radio] = handler; + } + } + } + + + udata = ubus.call({ + object: "service", + method: "get_data", + data: { type: "wifi-iface" }, }); @@ -193,6 +228,9 @@ function config_init(uci) for (let svcname, svc in udata) { for (let typename, data in svc) { for (let radio, vifs in data) { + if (type(vifs) != "object") + continue; + for (let name, vif in vifs) { let devs = vif.device; if (type(devs) != "array") |