mirror of
https://github.com/Telecominfraproject/wlan-ap.git
synced 2025-10-30 10:02:53 +00:00
The current uspot config uses a single named section to assign ifnames to uspot interfaces like so: config devices 'devices' option wlanc0 'hotspot1' option wlanc1 'hotspot1' Where 'wlanc0' and 'wlanc1' are physical ifnames. Code in common.uc also hardcodes a check to match ifnames with 'wlanc*'. This comit gets rid of the "config device" sections and accepts in the "config uspot" sections e.g.: option ifname 'wlanc0' or list ifname 'wlanc0' list ifname 'wlanc1' The listed devices are then associated with the current uspot config exactly as they were with the previous configuration system. The hardcoded check in common.uc is also removed, allowing arbitrary ifnames to be used. Malformed sections are ignored with a warning. Subsequent duplicate entries for a given ifname are be ignored with a warning. Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
64 lines
1.4 KiB
Plaintext
Executable File
64 lines
1.4 KiB
Plaintext
Executable File
#!/usr/bin/ucode
|
|
|
|
let ubus = require('ubus').connect();
|
|
let uci = require('uci').cursor();
|
|
|
|
function restart() {
|
|
system('/etc/init.d/spotfilter restart');
|
|
system('/etc/init.d/uhttpd restart');
|
|
}
|
|
|
|
function interfaces() {
|
|
let interfaces = [];
|
|
uci.foreach('uspot', 'uspot', (d) => {
|
|
if (!d[".anonymous"])
|
|
push(interfaces, d[".name"]);
|
|
});
|
|
return uniq(interfaces);
|
|
}
|
|
|
|
switch(ARGV[0]) {
|
|
case 'dump':
|
|
for (let interface in interfaces()) {
|
|
let clients = ubus.call('spotfilter', 'client_list', { interface });
|
|
printf('%.J\n', clients);
|
|
}
|
|
break;
|
|
case 'clients':
|
|
for (let interface in interfaces()) {
|
|
let clients = ubus.call('spotfilter', 'client_list', { interface});
|
|
let res = {};
|
|
let t = time();
|
|
|
|
for (let c, val in clients) {
|
|
res[c] = {
|
|
status: val.state ? 'Authenticated' : 'Garden',
|
|
idle: val.idle || 0,
|
|
time: val.data.connect ? t - val.data.connect : 0,
|
|
ip4addr: val.ip4addr || '',
|
|
ip6addr: val.ip6addr || '',
|
|
packets_ul: val.packets_ul || 0,
|
|
bytes_ul: val.bytes_ul || 0,
|
|
packets_dl: val.packets_dl || 0,
|
|
bytes_dl: val.bytes_dl || 0,
|
|
};
|
|
}
|
|
printf('%.J\n', res);
|
|
}
|
|
break;
|
|
case 'restart':
|
|
restart();
|
|
break;
|
|
case 'log':
|
|
system('logread -f | grep uspot:');
|
|
break;
|
|
case 'debugon':
|
|
case 'debugoff':
|
|
uci.set('uspot', 'def_captive', 'debug', 1);
|
|
uci.commit();
|
|
restart();
|
|
break;
|
|
default:
|
|
break;
|
|
}
|