summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2010-10-19 04:13:33 +0000
committerJo-Philipp Wich <jow@openwrt.org>2010-10-19 04:13:33 +0000
commit687861c498f15b76eed192401911c0b00c714597 (patch)
tree66459d89b24d986aefe47b53e30d2300c38ac3db
parent7ae988f34299f882f5e4c7bb55fdbba3d09dd162 (diff)
libs/core: fix network counting in luci.model.wireless
-rw-r--r--libs/core/luasrc/model/wireless.lua58
1 files changed, 31 insertions, 27 deletions
diff --git a/libs/core/luasrc/model/wireless.lua b/libs/core/luasrc/model/wireless.lua
index 3d4b2b0a3..58dc8d975 100644
--- a/libs/core/luasrc/model/wireless.lua
+++ b/libs/core/luasrc/model/wireless.lua
@@ -36,28 +36,29 @@ function init(cursor)
st = uci.cursor_state()
ifs = { }
- local count = 0
+ local count = { }
ub.uci:foreach("wireless", "wifi-iface",
function(s)
- count = count + 1
+ if s.device then
+ count[s.device] = count[s.device] and count[s.device] + 1 or 1
- local id = "%s.network%d" %{ s.device, count }
+ local id = "%s.network%d" %{ s.device, count[s.device] }
- ifs[id] = {
- id = id,
- sid = s['.name'],
- count = count
- }
+ ifs[id] = {
+ id = id,
+ sid = s['.name'],
+ count = count
+ }
- local dev = st:get("wireless", s['.name'], "ifname")
- or st:get("wireless", s['.name'], "device")
+ local dev = st:get("wireless", s['.name'], "ifname")
+ or st:get("wireless", s['.name'], "device")
- local wtype = dev and iwi.type(dev)
-
- if dev and wtype then
- ifs[id].winfo = iwi[wtype]
- ifs[id].wdev = dev
+ local wtype = dev and iwi.type(dev)
+ if dev and wtype then
+ ifs[id].winfo = iwi[wtype]
+ ifs[id].wdev = dev
+ end
end
end)
end
@@ -129,7 +130,7 @@ end
function shortname(self, iface)
if iface.wdev and iface.winfo then
return "%s %q" %{
- i18n.translate(iface:active_mode()),
+ i18n.translate(iface:active_mode()),
iface:active_ssid() or i18n.translate("(hidden)")
}
else
@@ -230,7 +231,7 @@ network:property("bssid")
network:property("network")
function network._init(self, sid)
- local count = 0
+ local count = { }
local parent_dev = st:get("wireless", sid, "device")
or ub.uci:get("wireless", sid, "device")
@@ -241,14 +242,17 @@ function network._init(self, sid)
if dev then
ub.uci:foreach("wireless", "wifi-iface",
function(s)
- count = count + 1
- if s['.name'] == sid then
- self.id = "%s.network%d" %{ parent_dev, count }
-
- local wtype = iwi.type(dev)
- if dev and wtype then
- self.winfo = iwi[wtype]
- self.wdev = dev
+ if s.device then
+ count[s.device] = count[s.device]
+ and count[s.device] + 1 or 1
+ if s['.name'] == sid then
+ self.id = "%s.network%d" %{ parent_dev, count[s.device] }
+
+ local wtype = iwi.type(dev)
+ if dev and wtype then
+ self.winfo = iwi[wtype]
+ self.wdev = dev
+ end
end
end
end)
@@ -302,7 +306,8 @@ function network.active_bssid(self)
end
function network.active_encryption(self)
- return self.winfo and self.winfo.enctype(self.wdev) or "-"
+ local enc = self.winfo and self.winfo.encryption(self.wdev)
+ return enc and enc.description or "-"
end
function network.assoclist(self)
@@ -360,4 +365,3 @@ function network.signal_percent(self)
return 0
end
end
-