mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-11-04 12:03:56 +08:00
🐤 Sync 2026-10-27 12:12:04
This commit is contained in:
1 parent
8b63d5d4a9
commit
e646593c56
30 files changed
+1281
-416
No files matched your search
@@ -61,6 +61,12 @@ const callLuciWirelessDevices = rpc.declare({
|
||||
expect: { '': {} }
|
||||
});
|
||||
|
||||
const callWirelessStatus = rpc.declare({
|
||||
object: 'network.wireless',
|
||||
method: 'status',
|
||||
expect: { '': {} }
|
||||
});
|
||||
|
||||
const callLuciBoardJSON = rpc.declare({
|
||||
object: 'luci-rpc',
|
||||
method: 'getBoardJSON'
|
||||
@@ -1448,6 +1454,27 @@ Network = baseclass.extend(/** @lends LuCI.network.prototype */ {
|
||||
}, this));
|
||||
},
|
||||
|
||||
/** Return configured QCA VAP names reported by netifd, without driver probes. */
|
||||
getWifiRuntimeIfnames() {
|
||||
// netifd supplies VAP names without probing disabled radios or creating VAPs.
|
||||
return L.resolveDefault(callWirelessStatus(), {}).then((radios) => {
|
||||
const names = Object.create(null);
|
||||
for (const iface of uci.sections('wireless', 'wifi-iface')) {
|
||||
const radio = radios[iface.device];
|
||||
if (!radio || !['qcawifi', 'qcawificfg80211'].includes(uci.get('wireless', iface.device, 'type')))
|
||||
continue;
|
||||
names[iface['.name']] = null;
|
||||
if (!radio.up || radio.disabled || iface.disabled == '1' ||
|
||||
uci.get('wireless', iface.device, 'disabled') == '1')
|
||||
continue;
|
||||
const live = (radio.interfaces || []).find((net) => net.section == iface['.name']);
|
||||
if (live?.ifname)
|
||||
names[iface['.name']] = live.ifname;
|
||||
}
|
||||
return names;
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Obtain configured radio devices without querying runtime state.
|
||||
*
|
||||
|
||||
Reference in new issue
Block a user