1 local cursor = require "luci.model.uci".cursor()
3 if not cursor:get("network", "wan") then
4 cursor:section("network", "interface", "wan", {proto = "none"})
8 if not cursor:get("wireless", "client") then
9 cursor:section("wireless", "wifi-iface", "client",
10 {device = "_", doth = "1", _niu = "1", mode = "sta"})
11 cursor:save("wireless")
14 local function deviceroute(self)
15 cursor:unload("network")
16 local wd = cursor:get("network", "wan", "_wandev") or ""
19 cursor:set("network", "wan", "proto", "none")
22 if wd:find("ethernet:") == 1 then
23 cursor:set("network", "wan", "defaultroute", "1")
24 cursor:set("network", "wan", "ifname", wd:sub(10))
25 self:set_route("etherwan")
27 cursor:delete("network", "wan", "ifname")
30 if wd:find("wlan:") == 1 then
31 local widev = wd:sub(6)
32 if cursor:get("wireless", "client", "device") ~= widev then
33 cursor:delete("wireless", "client", "network")
34 cursor:set("wireless", "client", "device", widev)
36 self:set_route("wlanwan1", "wlanwan2")
38 cursor:delete("wireless", "client", "device")
39 cursor:delete("wireless", "client", "network")
43 cursor:save("wireless")
44 cursor:save("network")
53 d:add("device", "niu/network/wandevice")
54 d:add("deviceroute", deviceroute)
55 d:set("etherwan", "niu/network/etherwan")
56 d:set("wlanwan1", "niu/network/wlanwanscan")
57 d:set("wlanwan2", "niu/network/wlanwan")
59 function d.on_cancel()
60 cursor:revert("network")
61 cursor:revert("wireless")
65 cursor:commit("network")
66 cursor:commit("wireless")