diff options
author | Jo-Philipp Wich <jow@openwrt.org> | 2010-12-24 21:39:44 +0000 |
---|---|---|
committer | Jo-Philipp Wich <jow@openwrt.org> | 2010-12-24 21:39:44 +0000 |
commit | 8ee6d915ee10fed7ad229cfd143d7b446cb18480 (patch) | |
tree | c43ef23ffdfb1c9a5d1f184775622782d2af4336 /libs | |
parent | 0f9f2a42a4b54e497090940d18a852c15b2a1b8a (diff) |
libs/core: fix some issues in network model
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 |