nack, again the webui should not be in that folder. John
On 08/05/2014 23:33, Matthew Fatheree wrote: > From 9a9dc70152468dd745fe0cd9dd94d1b498b87598 Mon Sep 17 00:00:00 > 2001 From: Matthew Fatheree <matthew.fathe...@belkin.com> Date: > Sun, 4 May 2014 23:47:45 +0700 Subject: [PATCH 29/30] mamba mvebu: > support macclone > > Support to change/restore the WAN's MAC address via WebUI > > Signed-off-by: Matthew Fatheree <matthew.fathe...@belkin.com> --- > .../files/usr/lib/lua/luci/controller/macclone.lua | 6 ++ > .../files/usr/lib/lua/luci/model/cbi/macclone.lua | 92 > ++++++++++++++++++++ 2 files changed, 98 insertions(+) create mode > 100644 > package/linksys-base-files/files/usr/lib/lua/luci/controller/macclone.lua > > create mode 100644 package/linksys-base-files/files/usr/lib/lua/luci/model/cbi/macclone.lua > > diff --git > a/package/linksys-base-files/files/usr/lib/lua/luci/controller/macclone.lua > b/package/linksys-base-files/files/usr/lib/lua/luci/controller/macclone.lua > > new file mode 100644 > index 0000000..97245d9 --- /dev/null +++ > b/package/linksys-base-files/files/usr/lib/lua/luci/controller/macclone.lua > > @@ -0,0 +1,6 @@ > +module("luci.controller.macclone", package.seeall) + +function > index() + entry({"admin", "network", "MacClone"}, > cbi("macclone"), _("MAC Address Clone"), 90) + entry({"mini", > "network", "MacClone"}, cbi("macclone"), _("MAC Address Clone"), > 90) +end diff --git > a/package/linksys-base-files/files/usr/lib/lua/luci/model/cbi/macclone.lua > b/package/linksys-base-files/files/usr/lib/lua/luci/model/cbi/macclone.lua > > new file mode 100644 > index 0000000..b01d94b --- /dev/null +++ > b/package/linksys-base-files/files/usr/lib/lua/luci/model/cbi/macclone.lua > > @@ -0,0 +1,92 @@ > +--Create Form +m = SimpleForm("macclone", translate("MAC Address > Clone"), + translate("Some ISPs will require you to register > your MAC address. If you do not wish to re-register your MAC > address, you can have the router clone the MAC address that is > registered with your ISP.")) +s = m:section(SimpleSection) + > +--Translate submit button to "Clone Mac...", hidden reset button > +m.submit = translate("Clone Mac...") +m.reset = false + +--Show > texbox "Curent WAN MAC" +curentmac = s:option(Value, > "curentmac", translate("Current WAN MAC")) +curentmac.datatype = > "macaddr" +curentmac.placeholder = "00:00:00:00:00:00" + +--Show > button "Restore Original MAC Address" +ori_mac = > s:option(Button, "ori_mac", translate(" ")) +ori_mac.inputtitle = > translate("Restore Original MAC Address") +ori_mac.inputstyle = > "apply" +ori_mac.rmempty = false + +--Get WAN interface name > +cmd = "uci -P/var/state get network.wan.ifname" +f = > io.popen(cmd) +wan_if = f:read() +f:close() + +--Get current MAC > +cmd = "uci show network.wan | grep .macaddr | awk -F'=' > '{print $2}'" +f = io.popen(cmd) +cur_mac = f:read() > +f:close() +if cur_mac == nil then + cmd = "ifconfig > "..wan_if.." | grep HWaddr | awk -F'HWaddr ' '{print $2}'" + f > = io.popen(cmd) + cur_mac = f:read() + if cur_mac then + > curentmac:value("", cur_mac.."(Original MAC)") + end + > f:close() +else + curentmac:value("", cur_mac.."(Has changed)") > +end + +--Mac Clone +function curentmac.write(self) + local > mac = luci.http.formvalue("cbid.macclone.1.curentmac") + if > mac and mac ~= cur_mac then + cmd = "uci set > network.wan.macaddr="..mac.." && uci commit network && > /etc/init.d/network restart" + p = > io.popen(cmd) + p:close() + m.message = > "Clone MAC("..mac..") successfully" + cur_mac = > mac + curentmac:value("", mac.."(Has changed)") + > else + m.message = "Clone MAC unsuccessfully" + > end +end + +--Restore original MAC +function ori_mac.write(self) + > --Check macaddr set to /etc/config/network + cmd = > "uci show network.wan | grep .macaddr | awk -F'=' '{print $2}'" + > local p = io.popen(cmd) + local mac = p:read() + > p:close() + + if mac then + --Remove macaddr from > /etc/config/network + cmd = "uci delete > network.wan.macaddr && uci commit network && /etc/init.d/network > restart" + p = io.popen(cmd) + p:close() + + > --Get original Mac + cmd = "ifconfig "..wan_if.." > | grep HWaddr | awk -F'HWaddr ' '{print $2}'" + p > = io.popen(cmd) + local ori_mac = p:read() + > p:close() + + --Show Mac to text box + > if ori_mac then + m.message = "Restore > original MAC successfully" + > curentmac:value("", ori_mac.."(Original MAC)") + cur_mac > = ori_mac + else + m.message = > "Restore original MAC unsuccessfully" + end + > else + m.message = "Current Mac is original" + > end +end + +return m -- 1.7.9.5 > > > > __________________________________________________________________ > Confidential This e-mail and any files transmitted with it are the > property of Belkin International, Inc. and/or its affiliates, are > confidential, and are intended solely for the use of the individual > or entity to whom this e-mail is addressed. If you are not one of > the named recipients or otherwise have reason to believe that you > have received this e-mail in error, please notify the sender and > delete this message immediately from your computer. Any other use, > retention, dissemination, forwarding, printing or copying of this > e-mail is strictly prohibited. Pour la version française: > http://www.belkin.com/email-notice/French.html Für die deutsche > Übersetzung: http://www.belkin.com/email-notice/German.html > __________________________________________________________________ > _______________________________________________ openwrt-devel > mailing list openwrt-devel@lists.openwrt.org > https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel > _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel