X-Git-Url: https://git.archive.openwrt.org/?a=blobdiff_plain;f=libs%2Fsys%2Fluasrc%2Fsys.lua;h=c09c5e273ebbb142b81410005e7bb804bc41a55a;hb=89ece183ef93a16afcbbdf3dca5398d34c233aa6;hp=1708a27355ec8889b0562d436d14a6b10f56775b;hpb=1b77a6f4c49b29b83e3063d9deca1a38e97ad897;p=project%2Fluci.git diff --git a/libs/sys/luasrc/sys.lua b/libs/sys/luasrc/sys.lua index 1708a2735..c09c5e273 100644 --- a/libs/sys/luasrc/sys.lua +++ b/libs/sys/luasrc/sys.lua @@ -687,27 +687,25 @@ end -- @param iface Wireless interface (optional) -- @return Table of available channels function wifi.channels(iface) - local cmd = "iwlist " .. ( iface or "" ) .. " freq 2>/dev/null" - local cns = { } - - local fd = io.popen(cmd) - if fd then - local ln, c, f - while true do - ln = fd:read("*l") - if not ln then break end - c, f = ln:match("Channel (%d+) : (%d+%.%d+) GHz") - if c and f then - cns[tonumber(c)] = tonumber(f) - end - end - fd:close() + local t = iwinfo.type(iface) + local cns + if t and iwinfo[t] then + cns = iwinfo[t].freqlist(iface) end - if not next(cns) then + if not cns or #cns == 0 then cns = { - 2.412, 2.417, 2.422, 2.427, 2.432, 2.437, - 2.442, 2.447, 2.452, 2.457, 2.462 + {channel = 1, mhz = 2.412}, + {channel = 2, mhz = 2.417}, + {channel = 3, mhz = 2.422}, + {channel = 4, mhz = 2.427}, + {channel = 5, mhz = 2.432}, + {channel = 6, mhz = 2.437}, + {channel = 7, mhz = 2.442}, + {channel = 8, mhz = 2.447}, + {channel = 9, mhz = 2.452}, + {channel = 10, mhz = 2.457}, + {channel = 11, mhz = 2.462} } end