modules/freifunk: use getiwinfo() instead of getiwconfig()
authorJo-Philipp Wich <jow@openwrt.org>
Wed, 8 Aug 2012 20:07:39 +0000 (20:07 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Wed, 8 Aug 2012 20:07:39 +0000 (20:07 +0000)
modules/freifunk/luasrc/controller/freifunk/freifunk.lua

index 1b551312519b3595f7963b18e991a23b8ae1ac9f..666f0864b3f5844062bb418c5eaa0ea91bb03212 100644 (file)
@@ -219,7 +219,6 @@ function jsonstatus()
        root.network = {}
        root.wireless = {devices = {}, interfaces = {}, status = {}}
        local wifs = root.wireless.interfaces
-       local wifidata = luci.sys.wifi.getiwconfig() or {}
        local netdata = luci.sys.net.deviceinfo() or {}
 
        for _, vif in ipairs(ffwifs) do
@@ -229,7 +228,18 @@ function jsonstatus()
                        if s.device == vif and s.network == vif then
                                wifs[#wifs+1] = s
                                if s.ifname then
-                                       root.wireless.status[s.ifname] = wifidata[s.ifname]
+                                       local iwinfo = luci.sys.wifi.getiwinfo(s.ifname)
+                                       if iwinfo then
+                                               root.wireless.status[s.ifname] = { }
+
+                                               local _, f
+                                               for _, f in ipairs({
+                                                       "channel", "txpower", "bitrate", "signal", "noise",
+                                                       "quality", "quality_max", "mode", "ssid", "bssid", "encryption", "ifname"
+                                               }) do
+                                                       root.wireless.status[s.ifname][f] = iwinfo[f]
+                                               end
+                                       end
                                end
                        end
                end)