X-Git-Url: https://git.archive.openwrt.org/?a=blobdiff_plain;f=modules%2Fadmin-mini%2Fluasrc%2Fmodel%2Fcbi%2Fmini%2Fnetwork.lua;h=d03e6a77732e25a4b754b07b2568d36523d1eea5;hb=8e62419bcbdc8d61de6baca241dd1d559c3a6735;hp=e36d7c030adf5394eeb9214d5e516e9eb9ca8db5;hpb=7be32a933262a3190cb105f1b038fab81be8a748;p=project%2Fluci.git diff --git a/modules/admin-mini/luasrc/model/cbi/mini/network.lua b/modules/admin-mini/luasrc/model/cbi/mini/network.lua index e36d7c030..d03e6a777 100644 --- a/modules/admin-mini/luasrc/model/cbi/mini/network.lua +++ b/modules/admin-mini/luasrc/model/cbi/mini/network.lua @@ -12,17 +12,20 @@ You may obtain a copy of the License at $Id$ ]]-- + require("luci.tools.webadmin") require("luci.sys") +require("luci.fs") + +local has_pptp = luci.fs.mtime("/usr/sbin/pptp") +local has_pppoe = luci.fs.glob("/usr/lib/pppd/*/rp-pppoe.so") -luci.model.uci.load_state("network") -local wireless = luci.model.uci.get_all("network") -luci.model.uci.unload("network") +local network = luci.model.uci.cursor_state():get_all("network") local netstat = luci.sys.net.deviceinfo() local ifaces = {} -for k, v in pairs(wireless) do +for k, v in pairs(network) do if v[".type"] == "interface" and k ~= "loopback" then table.insert(ifaces, v) end @@ -38,7 +41,9 @@ hwaddr = s:option(DummyValue, "_hwaddr", translate("network_interface_hwaddr"), translate("network_interface_hwaddr_desc")) function hwaddr.cfgvalue(self, section) local ix = self.map:get(section, "ifname") or "" - return luci.fs.readfile("/sys/class/net/" .. ix .. "/address") or "n/a" + return luci.fs.readfile("/sys/class/net/" .. ix .. "/address") + or luci.util.exec("ifconfig " .. ix):match(" ([A-F0-9:]+)%s*\n") + or "n/a" end @@ -52,13 +57,13 @@ 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 "-" - + local tx = netstat and netstat[ix] and netstat[ix][9] tx = tx and luci.tools.webadmin.byte_format(tonumber(tx)) or "-" - + return string.format("%s / %s", tx, rx) end @@ -67,19 +72,20 @@ 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 s = m:section(NamedSection, "lan", "interface", translate("m_n_local")) +s.addremove = false s:option(Value, "ipaddr", translate("ipaddress")) nm = s:option(Value, "netmask", translate("netmask")) @@ -94,12 +100,19 @@ dns.rmempty = true s = m:section(NamedSection, "wan", "interface", translate("m_n_inet")) +s.addremove = false p = s:option(ListValue, "proto", translate("protocol")) +p.override_values = true p:value("none", "disabled") p:value("static", translate("manual", "manual")) p:value("dhcp", translate("automatic", "automatic")) -p:value("pppoe", "PPPoE") -p:value("pptp", "PPTP") +if has_pppoe then p:value("pppoe", "PPPoE") end +if has_pptp then p:value("pptp", "PPTP") end + +if not ( has_pppoe and has_pptp ) then + p.description = translate("network_interface_prereq_mini") +end + ip = s:option(Value, "ipaddr", translate("ipaddress")) ip:depends("proto", "static") @@ -120,6 +133,7 @@ usr:depends("proto", "pppoe") usr:depends("proto", "pptp") pwd = s:option(Value, "password", translate("password")) +pwd.password = true pwd:depends("proto", "pppoe") pwd:depends("proto", "pptp") @@ -141,4 +155,4 @@ srv.rmempty = true -return m \ No newline at end of file +return m