mirror of
https://github.com/openwrt/luci
synced 2025-01-09 04:28:37 +08:00
protocols: replace luci/getTTYDevices calls with generic file/list ones
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
parent
5697ebbef5
commit
9cae3b9e67
@ -479,40 +479,6 @@ local methods = {
|
||||
end
|
||||
return { result = hostname:gsub("\n$", "") }
|
||||
end
|
||||
},
|
||||
|
||||
getTTYDevices = {
|
||||
args = { with_cdc = false, with_tts = true },
|
||||
call = function(args)
|
||||
local fs = require "nixio.fs"
|
||||
local iter = fs.glob("/dev/tty[A-Z]*")
|
||||
local rv = {}
|
||||
if iter then
|
||||
local node
|
||||
for node in iter do
|
||||
rv[#rv+1] = node
|
||||
end
|
||||
end
|
||||
if args.with_tts then
|
||||
iter = fs.glob("/dev/tts/*")
|
||||
if iter then
|
||||
local node
|
||||
for node in iter do
|
||||
rv[#rv+1] = node
|
||||
end
|
||||
end
|
||||
end
|
||||
if args.with_cdc then
|
||||
iter = fs.glob("/dev/cdc-wdm*")
|
||||
if iter then
|
||||
local node
|
||||
for node in iter do
|
||||
rv[#rv+1] = node
|
||||
end
|
||||
end
|
||||
end
|
||||
return { result = rv }
|
||||
end
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -27,7 +27,7 @@
|
||||
"ubus": {
|
||||
"file": [ "list", "stat" ],
|
||||
"iwinfo": [ "assoclist", "freqlist", "txpowerlist", "countrylist" ],
|
||||
"luci": [ "getBoardJSON", "getDUIDHints", "getHostHints", "getIfaddrs", "getInitList", "getLocaltime", "getTimezones", "getDHCPLeases", "getLEDs", "getNetworkDevices", "getUSBDevices", "getHostname", "getTTYDevices", "getWirelessDevices" ],
|
||||
"luci": [ "getBoardJSON", "getDUIDHints", "getHostHints", "getIfaddrs", "getInitList", "getLocaltime", "getTimezones", "getDHCPLeases", "getLEDs", "getNetworkDevices", "getUSBDevices", "getHostname", "getWirelessDevices" ],
|
||||
"network.device": [ "status" ],
|
||||
"network.interface": [ "dump" ],
|
||||
"network": [ "get_proto_handlers" ],
|
||||
|
@ -4,11 +4,18 @@
|
||||
'require form';
|
||||
'require network';
|
||||
|
||||
var callTTYDevices = rpc.declare({
|
||||
object: 'luci',
|
||||
method: 'getTTYDevices',
|
||||
params: [ 'with_cdc', 'with_tts' ],
|
||||
expect: { result: [] }
|
||||
var callFileList = rpc.declare({
|
||||
object: 'file',
|
||||
method: 'list',
|
||||
params: [ 'path' ],
|
||||
expect: { entries: [] },
|
||||
filter: function(list, params) {
|
||||
var rv = [];
|
||||
for (var i = 0; i < list.length; i++)
|
||||
if (list[i].name.match(/^tty[A-Z]/) || list[i].name.match(/^cdc-wdm/) || list[i].name.match(/^[0-9]+$/))
|
||||
rv.push(params.path + list[i].name);
|
||||
return rv.sort();
|
||||
}
|
||||
});
|
||||
|
||||
network.registerPatternVirtual(/^3g-.+$/);
|
||||
@ -66,11 +73,13 @@ return network.registerProtocol('3g', {
|
||||
o = s.taboption('general', form.Value, 'device', _('Modem device'));
|
||||
o.rmempty = false;
|
||||
o.load = function(section_id) {
|
||||
return callTTYDevices(false, true).then(L.bind(function(devices) {
|
||||
if (Array.isArray(devices))
|
||||
for (var i = 0; i < devices.length; i++)
|
||||
this.value(devices[i]);
|
||||
|
||||
return callFileList('/dev/').then(L.bind(function(devices) {
|
||||
for (var i = 0; i < devices.length; i++)
|
||||
this.value(devices[i]);
|
||||
return callFileList('/dev/tts/');
|
||||
}, this)).then(L.bind(function(devices) {
|
||||
for (var i = 0; i < devices.length; i++)
|
||||
this.value(devices[i]);
|
||||
return form.Value.prototype.load.apply(this, [section_id]);
|
||||
}, this));
|
||||
};
|
||||
|
@ -3,11 +3,18 @@
|
||||
'require form';
|
||||
'require network';
|
||||
|
||||
var callTTYDevices = rpc.declare({
|
||||
object: 'luci',
|
||||
method: 'getTTYDevices',
|
||||
params: [ 'with_cdc', 'with_tts' ],
|
||||
expect: { result: [] }
|
||||
var callFileList = rpc.declare({
|
||||
object: 'file',
|
||||
method: 'list',
|
||||
params: [ 'path' ],
|
||||
expect: { entries: [] },
|
||||
filter: function(list, params) {
|
||||
var rv = [];
|
||||
for (var i = 0; i < list.length; i++)
|
||||
if (list[i].name.match(/^ttyUSB/) || list[i].name.match(/^cdc-wdm/))
|
||||
rv.push(params.path + list[i].name);
|
||||
return rv.sort();
|
||||
}
|
||||
});
|
||||
|
||||
network.registerPatternVirtual(/^ncm-.+$/);
|
||||
@ -54,12 +61,9 @@ return network.registerProtocol('ncm', {
|
||||
o = s.taboption('general', form.Value, 'device', _('Modem device'));
|
||||
o.rmempty = false;
|
||||
o.load = function(section_id) {
|
||||
return callTTYDevices(true, false).then(L.bind(function(devices) {
|
||||
if (Array.isArray(devices))
|
||||
for (var i = 0; i < devices.length; i++)
|
||||
if (/(ttyUSB|cdc-wdm)/.test(devices[i]))
|
||||
this.value(devices[i]);
|
||||
|
||||
return callFileList('/dev/').then(L.bind(function(devices) {
|
||||
for (var i = 0; i < devices.length; i++)
|
||||
this.value(devices[i]);
|
||||
return form.Value.prototype.load.apply(this, [section_id]);
|
||||
}, this));
|
||||
};
|
||||
|
@ -4,11 +4,18 @@
|
||||
'require form';
|
||||
'require network';
|
||||
|
||||
var callTTYDevices = rpc.declare({
|
||||
object: 'luci',
|
||||
method: 'getTTYDevices',
|
||||
params: [ 'with_cdc', 'with_tts' ],
|
||||
expect: { result: [] }
|
||||
var callFileList = rpc.declare({
|
||||
object: 'file',
|
||||
method: 'list',
|
||||
params: [ 'path' ],
|
||||
expect: { entries: [] },
|
||||
filter: function(list, params) {
|
||||
var rv = [];
|
||||
for (var i = 0; i < list.length; i++)
|
||||
if (list[i].name.match(/^tty[A-Z]/) || list[i].name.match(/^cdc-wdm/) || list[i].name.match(/^[0-9]+$/))
|
||||
rv.push(params.path + list[i].name);
|
||||
return rv.sort();
|
||||
}
|
||||
});
|
||||
|
||||
network.registerPatternVirtual(/^ppp-.+$/);
|
||||
@ -66,11 +73,13 @@ return network.registerProtocol('ppp', {
|
||||
o = s.taboption('general', form.Value, 'device', _('Modem device'));
|
||||
o.rmempty = false;
|
||||
o.load = function(section_id) {
|
||||
return callTTYDevices(true, true).then(L.bind(function(devices) {
|
||||
if (Array.isArray(devices))
|
||||
for (var i = 0; i < devices.length; i++)
|
||||
this.value(devices[i]);
|
||||
|
||||
return callFileList('/dev/').then(L.bind(function(devices) {
|
||||
for (var i = 0; i < devices.length; i++)
|
||||
this.value(devices[i]);
|
||||
return callFileList('/dev/tts/');
|
||||
}, this)).then(L.bind(function(devices) {
|
||||
for (var i = 0; i < devices.length; i++)
|
||||
this.value(devices[i]);
|
||||
return form.Value.prototype.load.apply(this, [section_id]);
|
||||
}, this));
|
||||
};
|
||||
|
@ -3,11 +3,18 @@
|
||||
'require form';
|
||||
'require network';
|
||||
|
||||
var callTTYDevices = rpc.declare({
|
||||
object: 'luci',
|
||||
method: 'getTTYDevices',
|
||||
params: [ 'with_cdc', 'with_tts' ],
|
||||
expect: { result: [] }
|
||||
var callFileList = rpc.declare({
|
||||
object: 'file',
|
||||
method: 'list',
|
||||
params: [ 'path' ],
|
||||
expect: { entries: [] },
|
||||
filter: function(list, params) {
|
||||
var rv = [];
|
||||
for (var i = 0; i < list.length; i++)
|
||||
if (list[i].name.match(/^cdc-wdm/))
|
||||
rv.push(params.path + list[i].name);
|
||||
return rv.sort();
|
||||
}
|
||||
});
|
||||
|
||||
network.registerPatternVirtual(/^qmi-.+$/);
|
||||
@ -50,12 +57,9 @@ return network.registerProtocol('qmi', {
|
||||
o = s.taboption('general', form.Value, 'device', _('Modem device'));
|
||||
o.rmempty = false;
|
||||
o.load = function(section_id) {
|
||||
return callTTYDevices(true, false).then(L.bind(function(devices) {
|
||||
if (Array.isArray(devices))
|
||||
for (var i = 0; i < devices.length; i++)
|
||||
if (/cdc-wdm/.test(devices[i]))
|
||||
this.value(devices[i]);
|
||||
|
||||
return callFileList('/dev/').then(L.bind(function(devices) {
|
||||
for (var i = 0; i < devices.length; i++)
|
||||
this.value(devices[i]);
|
||||
return form.Value.prototype.load.apply(this, [section_id]);
|
||||
}, this));
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user