luci-base: rpcd: add getHostname and getTTYDevices calls

Also add IPv6 feature indication.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
Jo-Philipp Wich 2019-08-20 15:33:48 +02:00
parent 55b1ae6c9b
commit 0674fc2041
2 changed files with 47 additions and 1 deletions

View file

@ -335,6 +335,7 @@ local methods = {
rv.odhcpd = fs.access("/usr/sbin/odhcpd") rv.odhcpd = fs.access("/usr/sbin/odhcpd")
rv.zram = fs.access("/sys/class/zram-control") rv.zram = fs.access("/sys/class/zram-control")
rv.sysntpd = fs.readlink("/usr/sbin/ntpd") and true rv.sysntpd = fs.readlink("/usr/sbin/ntpd") and true
rv.ipv6 = fs.access("/proc/net/ipv6_route")
local wifi_features = { "eap", "11n", "11ac", "11r", "11w", "acs", "sae", "owe", "suiteb192" } local wifi_features = { "eap", "11n", "11ac", "11r", "11w", "acs", "sae", "owe", "suiteb192" }
@ -407,6 +408,51 @@ local methods = {
return rv return rv
end end
},
getHostname = {
call = function()
local fs = require "nixio.fs"
local hostname, code, err = fs.readfile("/proc/sys/kernel/hostname")
if err then
return { error = err }, 1
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
} }
} }

View file

@ -22,7 +22,7 @@
"read": { "read": {
"ubus": { "ubus": {
"iwinfo": [ "info" ], "iwinfo": [ "info" ],
"luci": [ "getBoardJSON", "getDUIDHints", "getHostHints", "getIfaddrs", "getInitList", "getLocaltime", "getTimezones", "getDHCPLeases", "getLEDs", "getNetworkDevices", "getUSBDevices" ], "luci": [ "getBoardJSON", "getDUIDHints", "getHostHints", "getIfaddrs", "getInitList", "getLocaltime", "getTimezones", "getDHCPLeases", "getLEDs", "getNetworkDevices", "getUSBDevices", "getHostname", "getTTYDevices" ],
"network.device": [ "status" ], "network.device": [ "status" ],
"network.interface": [ "dump" ], "network.interface": [ "dump" ],
"network.wireless": [ "status" ], "network.wireless": [ "status" ],