X-Git-Url: https://git.archive.openwrt.org/?a=blobdiff_plain;f=modules%2Fadmin-full%2Fluasrc%2Fmodel%2Fcbi%2Fadmin_network%2Fnetwork.lua;h=8fd536888435e3c597d036e6eaab37003673de02;hb=8c675f6a6ccd30c79fbc2d624b9ce2e6d7375d66;hp=fce84fe3f40332e29426f2bb70919021259472d1;hpb=d463d0b8357764ca9018549fa624c428f56fcd87;p=project%2Fluci.git diff --git a/modules/admin-full/luasrc/model/cbi/admin_network/network.lua b/modules/admin-full/luasrc/model/cbi/admin_network/network.lua index fce84fe3f..8fd536888 100644 --- a/modules/admin-full/luasrc/model/cbi/admin_network/network.lua +++ b/modules/admin-full/luasrc/model/cbi/admin_network/network.lua @@ -12,19 +12,22 @@ You may obtain a copy of the License at $Id$ ]]-- -require("luci.sys") -require("luci.tools.webadmin") + +local sys = require "luci.sys" +local wa = require "luci.tools.webadmin" +local fs = require "nixio.fs" local netstate = luci.model.uci.cursor_state():get_all("network") m = Map("network", translate("interfaces")) local created -local netstat = luci.sys.net.deviceinfo() +local netstat = sys.net.deviceinfo() s = m:section(TypedSection, "interface", "") s.addremove = true s.extedit = luci.dispatcher.build_url("admin", "network", "network") .. "/%s" s.template = "cbi/tblsection" +s.override_scheme = true function s.filter(self, section) return section ~= "loopback" and section @@ -33,6 +36,8 @@ end function s.create(self, section) if TypedSection.create(self, section) then created = section + else + self.invalid_cts = true end end @@ -73,38 +78,35 @@ if luci.model.uci.cursor():load("firewall") then zone.titleref = luci.dispatcher.build_url("admin", "network", "firewall", "zones") function zone.cfgvalue(self, section) - local zones = luci.tools.webadmin.network_get_zones(section) - return zones and table.concat(zones, ", ") or "-" + return table.concat(wa.network_get_zones(section) or { "-" }, ", ") end end hwaddr = s:option(DummyValue, "_hwaddr") function hwaddr.cfgvalue(self, section) local ix = self.map:get(section, "ifname") or "" - return luci.fs.readfile("/sys/class/net/" .. ix .. "/address") + return fs.readfile("/sys/class/net/" .. ix .. "/address") or luci.util.exec("ifconfig " .. ix):match(" ([A-F0-9:]+)%s*\n") or "n/a" - end ipaddr = s:option(DummyValue, "ipaddr", translate("addresses")) function ipaddr.cfgvalue(self, section) - local addr = luci.tools.webadmin.network_get_addresses(section) - return table.concat(addr, ", ") + return table.concat(wa.network_get_addresses(section), ", ") end txrx = s:option(DummyValue, "_txrx") function txrx.cfgvalue(self, section) local ix = self.map:get(section, "ifname") - + local rx = netstat and netstat[ix] and netstat[ix][1] - rx = rx and luci.tools.webadmin.byte_format(tonumber(rx)) or "-" - + rx = rx and wa.byte_format(tonumber(rx)) or "-" + local tx = netstat and netstat[ix] and netstat[ix][9] - tx = tx and luci.tools.webadmin.byte_format(tonumber(tx)) or "-" - + tx = tx and wa.byte_format(tonumber(tx)) or "-" + return string.format("%s / %s", tx, rx) end @@ -112,14 +114,14 @@ errors = s:option(DummyValue, "_err") function errors.cfgvalue(self, section) local ix = self.map:get(section, "ifname") - + local rx = netstat and netstat[ix] and netstat[ix][3] local tx = netstat and netstat[ix] and netstat[ix][11] - + rx = rx and tostring(rx) or "-" tx = tx and tostring(tx) or "-" - + return string.format("%s / %s", tx, rx) end -return m \ No newline at end of file +return m