From: Jo-Philipp Wich Date: Fri, 24 Dec 2010 21:39:44 +0000 (+0000) Subject: libs/core: fix some issues in network model X-Git-Tag: 0.10.0~265 X-Git-Url: https://git.archive.openwrt.org/?p=project%2Fluci.git;a=commitdiff_plain;h=8ee6d915ee10fed7ad229cfd143d7b446cb18480 libs/core: fix some issues in network model --- 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