gluon-statuspage-api: make lib/gluon/status-page/www/cgi-bin/interfaces mesh-protocol agnostic
This commit is contained in:
parent
b3e609dca9
commit
8b63ac792a
@ -14,7 +14,7 @@ define Package/gluon-status-page-api
|
||||
SECTION:=gluon
|
||||
CATEGORY:=Gluon
|
||||
TITLE:=API for gluon-status-page
|
||||
DEPENDS:=+gluon-core +uhttpd +sse-multiplex +gluon-neighbour-info +gluon-respondd +libiwinfo +libjson-c +libnl-tiny
|
||||
DEPENDS:=+gluon-core +uhttpd +sse-multiplex +gluon-neighbour-info +gluon-respondd +libiwinfo +libjson-c +libnl-tiny +libubus-lua
|
||||
endef
|
||||
|
||||
define Build/Prepare
|
||||
|
@ -1,27 +1,24 @@
|
||||
#!/usr/bin/lua
|
||||
|
||||
util = require 'gluon.util'
|
||||
|
||||
fs = require 'nixio.fs'
|
||||
json = require 'luci.jsonc'
|
||||
ubus = require 'ubus'
|
||||
|
||||
io.write("Access-Control-Allow-Origin: *\n")
|
||||
io.write("Content-type: application/json\n\n")
|
||||
|
||||
f = io.popen('batctl if')
|
||||
|
||||
local uconn = ubus.connect()
|
||||
if not uconn then
|
||||
error("Failed to connect to ubusd")
|
||||
end
|
||||
list = util.get_mesh_devices(uconn)
|
||||
ubus.close(uconn)
|
||||
interfaces = {}
|
||||
|
||||
for line in f:lines() do
|
||||
ifname = line:match('^(.-):')
|
||||
if ifname ~= nil then
|
||||
for _,ifname in ipairs(list) do
|
||||
pcall(function()
|
||||
local address = util.trim(fs.readfile('/sys/class/net/' .. ifname .. '/address'))
|
||||
interfaces[ifname] = { address = address }
|
||||
end)
|
||||
end
|
||||
end
|
||||
|
||||
f:close()
|
||||
|
||||
io.write(json.stringify(interfaces))
|
||||
|
Loading…
Reference in New Issue
Block a user