diff options
Diffstat (limited to 'libs')
-rw-r--r-- | libs/core/luasrc/model/network.lua | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/libs/core/luasrc/model/network.lua b/libs/core/luasrc/model/network.lua index 18c84b624..17e074568 100644 --- a/libs/core/luasrc/model/network.lua +++ b/libs/core/luasrc/model/network.lua @@ -482,10 +482,11 @@ function network.ifname(self) return p .. "-" .. self.sid else local num = { } - local dev = self:_get("ifname") or - uci_r:get("network", self.sid, "ifname") + local dev = uci_r:get("network", self.sid, "ifname") or + uci_s:get("network", self.sid, "ifname") - dev = dev and dev:match("%S+") + dev = (type(dev) == "table") and dev[1] or dev + dev = (dev ~= nil) and dev:match("%S+") if not dev then uci_r:foreach("wireless", "wifi-iface", @@ -507,10 +508,18 @@ function network.ifname(self) end function network.device(self) - local dev = self:_get("device") + local dev = uci_r:get("network", self.sid, "device") or + uci_s:get("network", self.sid, "device") + + dev = (type(dev) == "table") and dev[1] or dev + if not dev or dev:match("[^%w%-%.%s]") then - dev = uci_r:get("network", self.sid, "ifname") + dev = uci_r:get("network", self.sid, "ifname") or + uci_s:get("network", self.sid, "ifname") + + dev = (type(dev) == "table") and dev[1] or dev end + return dev end |