Author: titmuss
Date: Wed Jun 18 08:43:31 2008
New Revision: 2588
URL: http://svn.slimdevices.com?rev=2588&root=Jive&view=rev
Log:
Bug: 6860
Description:
Make wireless class timeout networks after 20 seconds, modfiy applets for the
new behaviour.
Modified:
7.1/branches/discovery-refactor/squeezeplay/src/squeezeplay/share/applets/SetupSqueezebox/SetupSqueezeboxApplet.lua
7.1/branches/discovery-refactor/squeezeplay/src/squeezeplay_jive/share/applets/SetupWireless/SetupWirelessApplet.lua
7.1/branches/discovery-refactor/squeezeplay/src/squeezeplay_jive/share/jive/net/Wireless.lua
Modified:
7.1/branches/discovery-refactor/squeezeplay/src/squeezeplay/share/applets/SetupSqueezebox/SetupSqueezeboxApplet.lua
URL:
http://svn.slimdevices.com/7.1/branches/discovery-refactor/squeezeplay/src/squeezeplay/share/applets/SetupSqueezebox/SetupSqueezeboxApplet.lua?rev=2588&root=Jive&r1=2587&r2=2588&view=diff
==============================================================================
---
7.1/branches/discovery-refactor/squeezeplay/src/squeezeplay/share/applets/SetupSqueezebox/SetupSqueezeboxApplet.lua
(original)
+++
7.1/branches/discovery-refactor/squeezeplay/src/squeezeplay/share/applets/SetupSqueezebox/SetupSqueezeboxApplet.lua
Wed Jun 18 08:43:31 2008
@@ -154,7 +154,7 @@
end)
-- schedule network scan
- self.scanMenu:addTimer(2000, function()
+ self.scanMenu:addTimer(10000, function()
-- only scan if this window is on
top, not under a transparent popup
if Framework.windowStack[1] ~=
window then
return
@@ -256,6 +256,8 @@
function _scanComplete(self, scanTable, keepOldEntries)
local now = Framework:getTicks()
+ local seen = {}
+
for ssid, entry in pairs(scanTable) do
local mac, ether = Player:ssidIsSqueezebox(ssid)
log:debug("ether=", ether, " mac=", mac)
@@ -263,6 +265,8 @@
if mac ~= nil then
mac = string.upper(string.gsub(mac, ":", ""))
+ seen[mac] = true
+
if not self.scanResults[mac] then
local item = {
text =
self:string("SQUEEZEBOX_BRIDGED_NAME", string.sub(mac, 7)),
@@ -284,16 +288,17 @@
-- squeezebox available via adhoc
self.scanResults[mac].adhoc = true
-
- -- remove networks not seen for 10 seconds
- if keepOldEntries ~= true and now - entry.lastScan >
10000 then
- log:debug(mac, " not seen for 10 seconds")
- self.scanResults[mac].adhoc = nil
-
- if self.scanResults[mac].udap ~= true then
-
self.scanMenu:removeItem(self.scanResults[mac].item)
- self.scanResults[mac] = nil
- end
+ end
+ end
+
+ -- remove old networks
+ for mac, entry in pairs(self.scanResults) do
+ if not seen[mac] and not keepOldEntries then
+ entry.adhoc = nil
+
+ if entry.udap ~= true then
+ self.scanMenu:removeItem(entry.item)
+ self.scanResults[mac] = nil
end
end
end
Modified:
7.1/branches/discovery-refactor/squeezeplay/src/squeezeplay_jive/share/applets/SetupWireless/SetupWirelessApplet.lua
URL:
http://svn.slimdevices.com/7.1/branches/discovery-refactor/squeezeplay/src/squeezeplay_jive/share/applets/SetupWireless/SetupWirelessApplet.lua?rev=2588&root=Jive&r1=2587&r2=2588&view=diff
==============================================================================
---
7.1/branches/discovery-refactor/squeezeplay/src/squeezeplay_jive/share/applets/SetupWireless/SetupWirelessApplet.lua
(original)
+++
7.1/branches/discovery-refactor/squeezeplay/src/squeezeplay_jive/share/applets/SetupWireless/SetupWirelessApplet.lua
Wed Jun 18 08:43:31 2008
@@ -311,13 +311,15 @@
--assert(type(entry.quality) == "number", "Eh?
quality is " .. tostring(entry.quality) .. " for " .. ssid)
item.icon:setStyle("wirelessLevel" ..
entry.quality)
self.scanMenu:updatedItem(item)
-
- -- remove networks not seen for 20 seconds
- if not entry.associated and now - entry.lastScan
> 20000 then
- self.scanMenu:removeItem(item)
- self.scanResults[ssid] = nil
- end
end
+ end
+
+ -- remove old networks
+ for ssid, entry in pairs(self.scanResults) do
+ if not scanTable[ssid] then
+ self.scanMenu:removeItem(entry.item)
+ self.scanResults[ssid] = nil
+ end
end
-- update current ssid
Modified:
7.1/branches/discovery-refactor/squeezeplay/src/squeezeplay_jive/share/jive/net/Wireless.lua
URL:
http://svn.slimdevices.com/7.1/branches/discovery-refactor/squeezeplay/src/squeezeplay_jive/share/jive/net/Wireless.lua?rev=2588&root=Jive&r1=2587&r2=2588&view=diff
==============================================================================
---
7.1/branches/discovery-refactor/squeezeplay/src/squeezeplay_jive/share/jive/net/Wireless.lua
(original)
+++
7.1/branches/discovery-refactor/squeezeplay/src/squeezeplay_jive/share/jive/net/Wireless.lua
Wed Jun 18 08:43:31 2008
@@ -22,6 +22,8 @@
module("jive.net.Wireless")
oo.class(_M, Socket)
+
+local SSID_TIMEOUT = 20000
-- wpa scan results signal level -> quality
-- FIXME tune with production boards
@@ -190,6 +192,8 @@
_scanResults = _scanResults or {}
+ local now = Framework:getTicks()
+
for bssid, level, flags, ssid in string.gmatch(scanResults,
"([%x:]+)\t%d+\t(%d+)\t(%S*)\t([^\n]+)\n") do
local quality = 1
@@ -207,8 +211,14 @@
level = level,
quality = quality,
associated = (ssid == associated),
- lastScan = Framework:getTicks()
+ lastScan = now
}
+ end
+
+ for ssid, entry in pairs(_scanResults) do
+ if now - entry.lastScan > SSID_TIMEOUT then
+ _scanResults[ssid] = nil
+ end
end
-- Bug #5227 if we are associated use the same quality indicator
_______________________________________________
Jive-checkins mailing list
[email protected]
http://lists.slimdevices.com/cgi-bin/mailman/listinfo/jive-checkins