build: split into luci and luci-addons packages
[project/luci.git] / modules / niu / luasrc / model / cbi / niu / network / lan.lua
1 local uci = require "luci.model.uci"
2 local cursor = uci.cursor()
3 local d = Delegator()
4 d.allow_finish = true
5 d.allow_back = true
6 d.allow_cancel = true
7
8 d:add("lan1", "niu/network/lan1")
9
10 function d.on_cancel()
11         cursor:revert("network")
12         cursor:revert("dhcp")
13 end
14
15 function d.on_done()
16         if uci.inst_state:get("network", "lan", "ipaddr") ~= cursor:get("network", "lan", "ipaddr") then
17                 local cs = uci.cursor_state()
18                 cs:set("network", "lan", "_ipchanged", "1")
19                 cs:save("network")
20         end
21         
22         if cursor:get("network", "lan", "proto") == "dhcp" then
23                 local emergv4 = cursor:get("network", "lan", "_emergv4")
24                 if emergv4 then
25                         if cursor:get("network", "lan_ea") then
26                                 cursor:set("network", "lan_ea", "ipaddr", emergv4)
27                         else
28                                 cursor:section("network", "alias", "lan_ea", {
29                                         ipaddr = emergv4,
30                                         netmask = "255.255.255.0",
31                                         network = "lan"
32                                 })
33                         end
34                 else
35                         cursor:delete("network", "lan_ea")
36                 end
37         end
38
39         cursor:set("network", "lan", "type", "bridge")
40         cursor:commit("network")
41         cursor:commit("dhcp")
42 end
43
44 return d