diff options
author | Jo-Philipp Wich <jow@openwrt.org> | 2010-11-28 06:41:45 +0000 |
---|---|---|
committer | Jo-Philipp Wich <jow@openwrt.org> | 2010-11-28 06:41:45 +0000 |
commit | ae3825387bd9b47813e0b862db38959e7000cb02 (patch) | |
tree | d7219f49ce60f72abbcbfab29d780e551cc51bc0 /modules/admin-full/luasrc/controller/admin/status.lua | |
parent | f45d5fb952aecd48080c0b48580d0b2113769e2b (diff) |
modules/admin-full: add SVG based realtime bandwidth status
Diffstat (limited to 'modules/admin-full/luasrc/controller/admin/status.lua')
-rw-r--r-- | modules/admin-full/luasrc/controller/admin/status.lua | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/modules/admin-full/luasrc/controller/admin/status.lua b/modules/admin-full/luasrc/controller/admin/status.lua index 55bba2f38..d283627eb 100644 --- a/modules/admin-full/luasrc/controller/admin/status.lua +++ b/modules/admin-full/luasrc/controller/admin/status.lua @@ -25,6 +25,9 @@ function index() entry({"admin", "status", "syslog"}, call("action_syslog"), i18n("System Log"), 5) entry({"admin", "status", "dmesg"}, call("action_dmesg"), i18n("Kernel Log"), 6) + entry({"admin", "status", "bandwidth"}, template("admin_status/bandwidth"), i18n("Realtime Traffic"), 7).leaf = true + entry({"admin", "status", "bandwidth_status"}, call("action_bandwidth")).leaf = true + end function action_syslog() @@ -52,3 +55,31 @@ function action_iptables() luci.template.render("admin_status/iptables") end end + +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/%s" % iface) then + luci.http.prepare_content("application/json") + + local bwc = io.popen("luci-bwc -p %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() + end + + return + end + + luci.http.status(404, "No such interface") +end |