+
+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()
+ end
+
+ return
+ 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()
+ end
+
+ return
+ end
+
+ luci.http.status(404, "No data available")
+end
+
+function action_connections()
+ local fs = require "luci.fs"
+ if fs.access("/var/lib/luci-bwc/connections") then
+ luci.http.prepare_content("application/json")
+
+ local bwc = io.popen("luci-bwc -c 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()
+ end
+
+ return
+ end
+
+ luci.http.status(404, "No data available")
+end