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

Reply via email to