From 0674fc20414e575c346ceb2066ff3af7e8601a48 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Tue, 20 Aug 2019 15:33:48 +0200 Subject: luci-base: rpcd: add getHostname and getTTYDevices calls Also add IPv6 feature indication. Signed-off-by: Jo-Philipp Wich --- modules/luci-base/root/usr/libexec/rpcd/luci | 46 ++++++++++++++++++++++ .../root/usr/share/rpcd/acl.d/luci-base.json | 2 +- 2 files changed, 47 insertions(+), 1 deletion(-) (limited to 'modules/luci-base') diff --git a/modules/luci-base/root/usr/libexec/rpcd/luci b/modules/luci-base/root/usr/libexec/rpcd/luci index b895013736..e27149127c 100755 --- a/modules/luci-base/root/usr/libexec/rpcd/luci +++ b/modules/luci-base/root/usr/libexec/rpcd/luci @@ -335,6 +335,7 @@ local methods = { rv.odhcpd = fs.access("/usr/sbin/odhcpd") rv.zram = fs.access("/sys/class/zram-control") 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" } @@ -407,6 +408,51 @@ local methods = { return rv 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 } } diff --git a/modules/luci-base/root/usr/share/rpcd/acl.d/luci-base.json b/modules/luci-base/root/usr/share/rpcd/acl.d/luci-base.json index 5ffcbdc2e6..34183da6d8 100644 --- a/modules/luci-base/root/usr/share/rpcd/acl.d/luci-base.json +++ b/modules/luci-base/root/usr/share/rpcd/acl.d/luci-base.json @@ -22,7 +22,7 @@ "read": { "ubus": { "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.interface": [ "dump" ], "network.wireless": [ "status" ], -- cgit v1.2.3