summaryrefslogtreecommitdiffhomepage
path: root/modules/luci-base
diff options
context:
space:
mode:
authorOldřich Jedlička <oldium.pro@gmail.com>2020-10-05 22:42:37 +0200
committerOldřich Jedlička <oldium.pro@gmail.com>2020-10-06 13:30:47 +0200
commit12e50de9dbce577b634819f02776c44be3894cd7 (patch)
tree7f37029c8cbc6de2582886ede50ee517ce205815 /modules/luci-base
parentc2b22afb9a9a770270be6dbee323ae497b4b988b (diff)
luci-base: network.js: Show clients also from wifi VLANs.
Iterate through VLANs to get the clients connected on configured wifi VLANs (as configured by `wifi-vlan` sections in `wireless` configuration). This is a minimum support for VLANs on wireless network. The VLAN name is nowhere displayed, but at least clients using VLANs are visible. Signed-off-by: Oldřich Jedlička <oldium.pro@gmail.com>
Diffstat (limited to 'modules/luci-base')
-rw-r--r--modules/luci-base/htdocs/luci-static/resources/network.js28
1 files changed, 27 insertions, 1 deletions
diff --git a/modules/luci-base/htdocs/luci-static/resources/network.js b/modules/luci-base/htdocs/luci-static/resources/network.js
index 856421cd31..1f749c593c 100644
--- a/modules/luci-base/htdocs/luci-static/resources/network.js
+++ b/modules/luci-base/htdocs/luci-static/resources/network.js
@@ -3571,6 +3571,24 @@ WifiNetwork = baseclass.extend(/** @lends LuCI.network.WifiNetwork.prototype */
},
/**
+ * Get the Linux VLAN network device names.
+ *
+ * @returns {string[]}
+ * Returns the current Linux VLAN network device name as resolved
+ * from `ubus` runtime information or empty array if this network
+ * has no associated VLAN network devices.
+ */
+ getVlanIfnames: function() {
+ var vlans = L.toArray(this.ubus('net', 'vlans')),
+ ifnames = [];
+
+ for (var i = 0; i < vlans.length; i++)
+ ifnames.push(vlans[i]['ifname']);
+
+ return ifnames;
+ },
+
+ /**
* Get the name of the corresponding wifi radio device.
*
* @returns {null|string}
@@ -3880,7 +3898,15 @@ WifiNetwork = baseclass.extend(/** @lends LuCI.network.WifiNetwork.prototype */
* with this network.
*/
getAssocList: function() {
- return callIwinfoAssoclist(this.getIfname());
+ var tasks = [];
+ var ifnames = [ this.getIfname() ].concat(this.getVlanIfnames());
+
+ for (var i = 0; i < ifnames.length; i++)
+ tasks.push(callIwinfoAssoclist(ifnames[i]));
+
+ return Promise.all(tasks).then(function(values) {
+ return Array.prototype.concat.apply([], values);
+ });
},
/**