diff options
author | Jo-Philipp Wich <jow@openwrt.org> | 2011-09-01 22:54:29 +0000 |
---|---|---|
committer | Jo-Philipp Wich <jow@openwrt.org> | 2011-09-01 22:54:29 +0000 |
commit | 8bbf59dcc6bd33a2353d56da5390c3c869c57c3a (patch) | |
tree | deaae3978a17e3365d7751abf0d65bc3552cb34c /modules/admin-full/luasrc | |
parent | 37df666e0a3e566d0c15f65d497c5be32e6d4d6d (diff) |
modules/admin-full: rework realtime stats to start luci-bwc on demand, kill daemon after ten seconds of inactivity
Diffstat (limited to 'modules/admin-full/luasrc')
-rw-r--r-- | modules/admin-full/luasrc/controller/admin/status.lua | 85 |
1 files changed, 34 insertions, 51 deletions
diff --git a/modules/admin-full/luasrc/controller/admin/status.lua b/modules/admin-full/luasrc/controller/admin/status.lua index f9bfd908d..61704ff55 100644 --- a/modules/admin-full/luasrc/controller/admin/status.lua +++ b/modules/admin-full/luasrc/controller/admin/status.lua @@ -69,57 +69,42 @@ function action_bandwidth() local path = luci.dispatcher.context.requestpath local iface = path[#path] - local fs = require "luci.fs" - if fs.access("/var/lib/luci-bwc/if/%s" % iface) then - luci.http.prepare_content("application/json") - - local bwc = io.popen("luci-bwc -i %q 2>/dev/null" % iface) - if bwc then - luci.http.write("[") - - while true do - local ln = bwc:read("*l") - if not ln then break end - luci.http.write(ln) - end - - luci.http.write("]") - bwc:close() + luci.http.prepare_content("application/json") + + local bwc = io.popen("luci-bwc -i %q 2>/dev/null" % iface) + if bwc then + luci.http.write("[") + + while true do + local ln = bwc:read("*l") + if not ln then break end + luci.http.write(ln) end - return + luci.http.write("]") + bwc:close() end - - luci.http.status(404, "No data available") end function action_load() - local fs = require "luci.fs" - if fs.access("/var/lib/luci-bwc/load") then - luci.http.prepare_content("application/json") - - local bwc = io.popen("luci-bwc -l 2>/dev/null") - if bwc then - luci.http.write("[") - - while true do - local ln = bwc:read("*l") - if not ln then break end - luci.http.write(ln) - end - - luci.http.write("]") - bwc:close() + luci.http.prepare_content("application/json") + + local bwc = io.popen("luci-bwc -l 2>/dev/null") + if bwc then + luci.http.write("[") + + while true do + local ln = bwc:read("*l") + if not ln then break end + luci.http.write(ln) end - return + luci.http.write("]") + bwc:close() end - - luci.http.status(404, "No data available") end function action_connections() - local fs = require "luci.fs" local sys = require "luci.sys" luci.http.prepare_content("application/json") @@ -127,20 +112,18 @@ function action_connections() luci.http.write("{ connections: ") luci.http.write_json(sys.net.conntrack()) - if fs.access("/var/lib/luci-bwc/connections") then - local bwc = io.popen("luci-bwc -c 2>/dev/null") - if bwc then - luci.http.write(", statistics: [") + local bwc = io.popen("luci-bwc -c 2>/dev/null") + if bwc then + luci.http.write(", statistics: [") - while true do - local ln = bwc:read("*l") - if not ln then break end - luci.http.write(ln) - end - - luci.http.write("]") - bwc:close() + while true do + local ln = bwc:read("*l") + if not ln then break end + luci.http.write(ln) end + + luci.http.write("]") + bwc:close() end luci.http.write(" }") |