]]--
module("luci.tools.webadmin", package.seeall)
-require("luci.model.uci")
+local uci = require("luci.model.uci")
require("luci.sys")
require("luci.ip")
end
end
+function date_format(secs)
+ local suff = {"min", "h", "d"}
+ local mins = 0
+ local hour = 0
+ local days = 0
+
+ secs = math.floor(secs)
+ if secs > 60 then
+ mins = math.floor(secs / 60)
+ secs = secs % 60
+ end
+
+ if mins > 60 then
+ hour = math.floor(mins / 60)
+ mins = mins % 60
+ end
+
+ if hour > 24 then
+ days = math.floor(hour / 24)
+ hour = hour % 24
+ end
+
+ if days > 0 then
+ return string.format("%.0fd %02.0fh %02.0fmin %02.0fs", days, hour, mins, secs)
+ else
+ return string.format("%02.0fh %02.0fmin %02.0fs", hour, mins, secs)
+ end
+end
+
function network_get_addresses(net)
+ local state = uci.cursor_state()
+ state:load("network")
local addr = {}
- local ipv4 = luci.model.uci.get_statevalue("network", net, "ipaddr")
- local mav4 = luci.model.uci.get_statevalue("network", net, "netmask")
- local ipv6 = luci.model.uci.get_statevalue("network", net, "ip6addr")
+ local ipv4 = state:get("network", net, "ipaddr")
+ local mav4 = state:get("network", net, "netmask")
+ local ipv6 = state:get("network", net, "ip6addr")
- if ipv4 and mav4 then
+ if ipv4 and #ipv4 > 0 then
+ if mav4 and #mav4 == 0 then mav4 = nil end
+
ipv4 = luci.ip.IPv4(ipv4, mav4)
if ipv4 then
table.insert(addr, ipv6)
end
- luci.model.uci.foreach("network", "alias",
+ state:foreach("network", "alias",
function (section)
if section.interface == net then
if section.ipaddr and section.netmask then
end
function cbi_add_networks(field)
- luci.model.uci.foreach("network", "interface",
+ uci.cursor():foreach("network", "interface",
function (section)
if section[".name"] ~= "loopback" then
field:value(section[".name"])
end
function network_get_zones(net)
- if not luci.model.uci.load("firewall") then
+ local state = uci.cursor_state()
+ if not state:load("firewall") then
return nil
end
local zones = {}
- luci.model.uci.foreach("firewall", "zone",
+ state:foreach("firewall", "zone",
function (section)
local znet = section.network or section.name
if luci.util.contains(luci.util.split(znet, " "), net) then
function firewall_find_zone(name)
local find
- luci.model.uci.foreach("firewall", "zone",
+ luci.model.uci.cursor():foreach("firewall", "zone",
function (section)
if section.name == name then
find = section[".name"]
)
return find
-end
\ No newline at end of file
+end
+
+function iface_get_network(iface)
+ local state = uci.cursor_state()
+ state:load("network")
+ local net
+
+ state:foreach("network", "interface",
+ function (section)
+ local ifname = state:get(
+ "network", section[".name"], "ifname"
+ )
+
+ if iface == ifname then
+ net = section[".name"]
+ end
+ end
+ )
+
+ return net
+end