X-Git-Url: https://git.archive.openwrt.org/?p=project%2Fluci.git;a=blobdiff_plain;f=modules%2Fadmin-core%2Fluasrc%2Ftools%2Fwebadmin.lua;h=0e09be9800cba08f742e7591d53b400b24ae39fc;hp=1fda11eeaf432c46c5e2d9752c0b370e4e315611;hb=2221b44d98cb3f80d65d4be5d1a83b3b024bace8;hpb=6d430930a3326d5ea1f92c46de5565dd05cd2030 diff --git a/modules/admin-core/luasrc/tools/webadmin.lua b/modules/admin-core/luasrc/tools/webadmin.lua index 1fda11eea..0e09be980 100644 --- a/modules/admin-core/luasrc/tools/webadmin.lua +++ b/modules/admin-core/luasrc/tools/webadmin.lua @@ -14,7 +14,7 @@ $Id$ ]]-- module("luci.tools.webadmin", package.seeall) -require("luci.model.uci") +local uci = require("luci.model.uci") require("luci.sys") require("luci.ip") @@ -34,6 +34,8 @@ function date_format(secs) 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 @@ -50,20 +52,23 @@ function date_format(secs) end if days > 0 then - return string.format("%dd %02dh %02dmin %02ds", days, hour, mins, secs) + return string.format("%.0fd %02.0fh %02.0fmin %02.0fs", days, hour, mins, secs) else - return string.format("%02dh %02dmin %02ds", hour, mins, secs) + return string.format("%02.0fh %02.0fmin %02.0fs", hour, mins, secs) end end function network_get_addresses(net) - luci.model.uci.load_state("network") + local state = uci.cursor_state() + state:load("network") local addr = {} - local ipv4 = luci.model.uci.get("network", net, "ipaddr") - local mav4 = luci.model.uci.get("network", net, "netmask") - local ipv6 = luci.model.uci.get("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 @@ -75,7 +80,7 @@ function network_get_addresses(net) 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 @@ -97,7 +102,7 @@ function network_get_addresses(net) 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"]) @@ -114,13 +119,14 @@ function cbi_add_knownips(field) end function network_get_zones(net) - if not luci.model.uci.load_state("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 @@ -135,7 +141,7 @@ end 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"] @@ -147,12 +153,13 @@ function firewall_find_zone(name) end function iface_get_network(iface) - luci.model.uci.load_state("network") + local state = uci.cursor_state() + state:load("network") local net - luci.model.uci.foreach("network", "interface", + state:foreach("network", "interface", function (section) - local ifname = luci.model.uci.get( + local ifname = state:get( "network", section[".name"], "ifname" ) @@ -163,4 +170,4 @@ function iface_get_network(iface) ) return net -end \ No newline at end of file +end