mirror of
https://github.com/openwrt/luci.git
synced 2026-06-21 01:11:31 +04:00
luci-mod-network: improve wifi scan status reporting
Attempt to properly report the scan status by treating 404 replies as not yet completed scans and empty array replies as successful scans that did not yield any results. Fixes: #2874 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
@@ -113,6 +113,7 @@ function scan() {
|
||||
var count = 0;
|
||||
|
||||
poll = L.poll(3, L.url('admin/network/wireless_scan_results', dev), null, function(s, results) {
|
||||
|
||||
if (Array.isArray(results)) {
|
||||
var bss = [];
|
||||
|
||||
@@ -143,8 +144,12 @@ function scan() {
|
||||
]);
|
||||
});
|
||||
|
||||
cbi_update_table(tbl, bss, E('em', { class: 'spinning' }, _('No scan results available yet...')));
|
||||
cbi_update_table(tbl, bss, E('em' {}, _('No networks in range')));
|
||||
}
|
||||
else {
|
||||
cbi_update_table(tbl, [], E('em', { class: 'spinning' }, _('No scan results available yet...')));
|
||||
}
|
||||
|
||||
|
||||
if (count++ >= 3) {
|
||||
count = 0;
|
||||
|
||||
@@ -311,7 +311,7 @@ local function _wifi_get_scan_results(cache_key)
|
||||
return results.values[cache_key]
|
||||
end
|
||||
|
||||
return { }
|
||||
return nil
|
||||
end
|
||||
|
||||
function wifi_scan_trigger(radio, update)
|
||||
@@ -343,10 +343,13 @@ function wifi_scan_trigger(radio, update)
|
||||
end
|
||||
|
||||
if update then
|
||||
for _, bss in ipairs(_wifi_get_scan_results(cache_key)) do
|
||||
if not bssids[bss.bssid] then
|
||||
bss.stale = true
|
||||
data[#data + 1] = bss
|
||||
local cached = _wifi_get_scan_results(cache_key)
|
||||
if cached then
|
||||
for _, bss in ipairs(cached) do
|
||||
if not bssids[bss.bssid] then
|
||||
bss.stale = true
|
||||
data[#data + 1] = bss
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -361,7 +364,7 @@ end
|
||||
function wifi_scan_results(radio)
|
||||
local results = radio and _wifi_get_scan_results("scan_%s" % radio)
|
||||
|
||||
if results and #results > 0 then
|
||||
if results then
|
||||
luci.http.prepare_content("application/json")
|
||||
luci.http.write_json(results)
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user