if wd:find("ethernet:") == 1 then
cursor:set("network", "wan", "defaultroute", "1")
- cursor:set("network", "wan", "ifname", wd:sub(10))
+ if wd:find("!", 10) == 10 then --Unbridge from LAN
+ local ethdev = wd:sub(11)
+ local ifname = cursor:get("network", "lan", "ifname")
+ local newifname = {}
+ for k in ifname:gmatch("[^ ]+") do
+ if k ~= ifname then
+ newifname[#newifname+1] = k
+ end
+ end
+ cursor:set("network", "lan", "ifname", table.concat(newifname, " "))
+ cursor:set("network", "wan", "_wandev", "ethernet:" .. ethdev)
+ cursor:set("network", "wan", "ifname", ethdev)
+ else
+ cursor:set("network", "wan", "ifname", wd:sub(10))
+ end
self:set_route("etherwan")
else
cursor:delete("network", "wan", "ifname")
local widev = wd:sub(6)
if cursor:get("wireless", "client", "device") ~= widev then
cursor:delete("wireless", "client", "network")
+ cursor:set("wireless", "client", "mode", "sta")
cursor:set("wireless", "client", "device", widev)
+ cursor:delete_all("wireless", "wifi-iface", function(s)
+ return s.device == widev and s._niu ~= "1"
+ end)
+ cursor:set("wireless", widev, "disabled", 0)
end
self:set_route("wlanwan1", "wlanwan2")
else