Author: bklaas
Date: Tue Sep 14 13:13:54 2010
New Revision: 9115
URL: http://svn.slimdevices.com/jive?rev=9115&view=rev
Log:
Bug: n/a
Description: set ifObj before calling callback in Networking.lua to avoid race
condition where applets can't query iface for correct network test result
Do not push diagnostics window when getNetworkResult() is positive, indicating
a non-error condition
Format diagnostics window with specific text in title bar for error
Split network errors from server errors in SlimBrowser and SlimMenus
Fix bug in ChooseMusicSourceApplet where server switch confirmation window was
being erroneously called
Modified:
7.6/trunk/squeezeplay/src/squeezeplay/share/applets/ChooseMusicSource/ChooseMusicSourceApplet.lua
7.6/trunk/squeezeplay/src/squeezeplay/share/applets/SlimBrowser/SlimBrowserApplet.lua
7.6/trunk/squeezeplay/src/squeezeplay/share/applets/SlimMenus/SlimMenusApplet.lua
7.6/trunk/squeezeplay/src/squeezeplay_squeezeos/share/applets/Diagnostics/DiagnosticsApplet.lua
7.6/trunk/squeezeplay/src/squeezeplay_squeezeos/share/jive/net/Networking.lua
Modified:
7.6/trunk/squeezeplay/src/squeezeplay/share/applets/ChooseMusicSource/ChooseMusicSourceApplet.lua
URL:
http://svn.slimdevices.com/jive/7.6/trunk/squeezeplay/src/squeezeplay/share/applets/ChooseMusicSource/ChooseMusicSourceApplet.lua?rev=9115&r1=9114&r2=9115&view=diff
==============================================================================
---
7.6/trunk/squeezeplay/src/squeezeplay/share/applets/ChooseMusicSource/ChooseMusicSourceApplet.lua
(original)
+++
7.6/trunk/squeezeplay/src/squeezeplay/share/applets/ChooseMusicSource/ChooseMusicSourceApplet.lua
Tue Sep 14 13:13:54 2010
@@ -441,9 +441,9 @@
return
end
- --Confirmation check. Also, don't show confirmation if current player
is not playing and there are tracks in the playlist.
+ --Confirmation check. Also, don't show confirmation if current player
is not playing or there are no tracks in the playlist.
if not self.confirmOnChange or not currentPlayer:getSlimServer() or
currentPlayer:getSlimServer() == server
- or (currentPlayer:getPlayMode() ~= "play" and (not
currentPlayer:getPlaylistSize() or currentPlayer:getPlaylistSize() == 0) ) then
+ or (currentPlayer:getPlayMode() ~= "play" or (not
currentPlayer:getPlaylistSize() or currentPlayer:getPlaylistSize() == 0) ) then
self:connectPlayerToServer(currentPlayer, server)
else
self:_confirmServerSwitch(currentPlayer, server, serverForRetry)
@@ -592,6 +592,7 @@
end
function _showConnectToServer(self, player, server)
+
if not self.connectingPopup then
self.connectingPopup = Popup("waiting_popup")
local window = self.connectingPopup
Modified:
7.6/trunk/squeezeplay/src/squeezeplay/share/applets/SlimBrowser/SlimBrowserApplet.lua
URL:
http://svn.slimdevices.com/jive/7.6/trunk/squeezeplay/src/squeezeplay/share/applets/SlimBrowser/SlimBrowserApplet.lua?rev=9115&r1=9114&r2=9115&view=diff
==============================================================================
---
7.6/trunk/squeezeplay/src/squeezeplay/share/applets/SlimBrowser/SlimBrowserApplet.lua
(original)
+++
7.6/trunk/squeezeplay/src/squeezeplay/share/applets/SlimBrowser/SlimBrowserApplet.lua
Tue Sep 14 13:13:54 2010
@@ -102,8 +102,9 @@
local _player = false
local _server = false
-local _networkOrServerError = false
-local _diagWindow = false
+local _networkError = false
+local _serverError = false
+local _diagWindow = false
-- The path of enlightenment
local _stepStack = {}
@@ -785,10 +786,10 @@
-- debug.dump(request)
-- there's an existing network or server error, so trap this request
and push to a diags troubleshooting window
- if _networkOrServerError then
- log:warn('_networkOrServerError is not false, therefore push on
an error window for diags')
+ if _networkError then
+ log:warn('_networkError is not false, therefore push on an
error window for diags')
local currentStep = _getCurrentStep()
- _diagWindow =
appletManager:callService("networkTroubleshootingMenu", _networkOrServerError)
+ _diagWindow =
appletManager:callService("networkTroubleshootingMenu", _networkError)
-- make sure we got a window generated to confirm we can leave
this method
if _diagWindow then
-- FIXME: this part doesn't work. Menu item on home
menu shows "locked" spinny icon after hitting back arrow from diags window
@@ -3059,12 +3060,20 @@
function notify_networkOrServerNotOK(self, iface)
- _networkOrServerError = iface -- store the interface object in
_networkOrServerError
+ log:warn("notify_networkOrServerNotOK()")
+ if iface and iface:isNetworkError() then
+ log:warn("this is a network error")
+ _networkError = iface -- store the interface object in
_networkError
+ else
+ log:warn("this is a server error")
+ _serverError = true
+ end
end
function notify_networkAndServerOK(self, iface)
- _networkOrServerError = false
+ _networkError = false
+ _serverError = false
if _diagWindow then
_diagWindow:hide()
_diagWindow = false
Modified:
7.6/trunk/squeezeplay/src/squeezeplay/share/applets/SlimMenus/SlimMenusApplet.lua
URL:
http://svn.slimdevices.com/jive/7.6/trunk/squeezeplay/src/squeezeplay/share/applets/SlimMenus/SlimMenusApplet.lua?rev=9115&r1=9114&r2=9115&view=diff
==============================================================================
---
7.6/trunk/squeezeplay/src/squeezeplay/share/applets/SlimMenus/SlimMenusApplet.lua
(original)
+++
7.6/trunk/squeezeplay/src/squeezeplay/share/applets/SlimMenus/SlimMenusApplet.lua
Tue Sep 14 13:13:54 2010
@@ -186,13 +186,20 @@
function notify_networkOrServerNotOK(self, iface)
log:warn('notify_networkOrServerNotOK')
- self.networkOrServerError = iface
+ if iface and iface:isNetworkError() then
+ self.networkError = iface
+ else
+ self.networkError = false
+ self.serverError = true
+ end
end
function notify_networkAndServerOK(self, iface)
- self.networkOrServerError = false
+ self.networkError = false
+ self.serverError = false
+
if self.diagWindow then
self.diagWindow:hide()
self.diagWindow = nil
@@ -711,9 +718,9 @@
local currentPlayer =
appletManager:callService("getCurrentPlayer")
-- if we know there is a network error
condition, push on a diags window immediately
- if self.networkOrServerError then
- log:warn('Network or Server
reported as not OK')
- self.diagWindow =
appletManager:callService("networkTroubleshootingMenu",
self.networkOrServerError)
+ if self.networkError then
+ log:warn('Network reported as
not OK')
+ self.diagWindow =
appletManager:callService("networkTroubleshootingMenu", self.networkError)
-- make sure we got a window
generated to confirm we can leave this method
if self.diagWindow then
log:warn("we've pushed
a diag window, so we're done here")
Modified:
7.6/trunk/squeezeplay/src/squeezeplay_squeezeos/share/applets/Diagnostics/DiagnosticsApplet.lua
URL:
http://svn.slimdevices.com/jive/7.6/trunk/squeezeplay/src/squeezeplay_squeezeos/share/applets/Diagnostics/DiagnosticsApplet.lua?rev=9115&r1=9114&r2=9115&view=diff
==============================================================================
---
7.6/trunk/squeezeplay/src/squeezeplay_squeezeos/share/applets/Diagnostics/DiagnosticsApplet.lua
(original)
+++
7.6/trunk/squeezeplay/src/squeezeplay_squeezeos/share/applets/Diagnostics/DiagnosticsApplet.lua
Tue Sep 14 13:13:54 2010
@@ -700,17 +700,23 @@
end
local errorCode = iface:getNetworkResult()
- if not errorCode then
+ if type(errorCode) == 'number' and errorCode >= 0 then
+ log:warn('A positive number means there is no error. Do not
push a diags window in this condition.')
+ elseif type(errorCode) == 'number' then
+ log:warn('Error code is listed as: ', errorCode)
+ else
log:error('There is no network problem registered on this
interface')
return
end
- local window = Window("text_list", self:string("NETWORK_PROBLEM") )
+ local titleToken = self.netResultToText[errorCode] and
self.netResultToText[errorCode].text or "NETWORK_PROBLEM"
+ local helpTextToken = self.netResultToText[errorCode] and
self.netResultToText[errorCode].help or "NETWORK_PROBLEM_HELP"
+
+ local window = Window("text_list", self:string(titleToken) )
window:setButtonAction("rbutton", nil)
local menu = SimpleMenu("menu")
- local helpTextToken = self.netResultToText[errorCode] and
self.netResultToText[errorCode].help or "NETWORK_PROBLEM_HELP"
menu:setHeaderWidget( Textarea( "help_text", self:string(helpTextToken)
) )
self:_addDiagnosticsMenuItem(menu)
Modified:
7.6/trunk/squeezeplay/src/squeezeplay_squeezeos/share/jive/net/Networking.lua
URL:
http://svn.slimdevices.com/jive/7.6/trunk/squeezeplay/src/squeezeplay_squeezeos/share/jive/net/Networking.lua?rev=9115&r1=9114&r2=9115&view=diff
==============================================================================
---
7.6/trunk/squeezeplay/src/squeezeplay_squeezeos/share/jive/net/Networking.lua
(original)
+++
7.6/trunk/squeezeplay/src/squeezeplay_squeezeos/share/jive/net/Networking.lua
Tue Sep 14 13:13:54 2010
@@ -370,6 +370,13 @@
return self.wireless
end
+
+function isNetworkError(self)
+ if self.networkResult and type(self.networkResult) == 'number' and
self.networkResult < 0 then
+ return true
+ end
+ return false
+end
function getNetworkResult(self)
@@ -2033,15 +2040,15 @@
local percentage, quality = ifObj:getSignalStrength()
if (status.wpa_state ~= "COMPLETED") or (quality == 0)
then
+ ifObj:setNetworkResult(-5)
callback(false, -5)
- ifObj:setNetworkResult(-5)
return
end
callback(true, 5)
else
if status.link ~= true then
+ ifObj:setNetworkResult(-6)
callback(false, -6)
- ifObj:setNetworkResult(-6)
return
end
callback(true, 6)
@@ -2052,8 +2059,8 @@
-- ------------------------------------------------------------
-- Check for valid ip address
if status.ip_address == nil or string.match(status.ip_address,
"^169.254.") then
+ ifObj:setNetworkResult(-8)
callback(false, -8)
- ifObj:setNetworkResult(-8)
return
end
@@ -2063,8 +2070,8 @@
-- ------------------------------------------------------------
-- Check for valid gateway
if status.ip_gateway == nil then
+ ifObj:setNetworkResult(-10)
callback(false, -10)
- ifObj:setNetworkResult(-10)
return
end
@@ -2074,8 +2081,8 @@
-- ------------------------------------------------------------
-- Check for valid dns sever ip
if status.ip_dns == nil then
+ ifObj:setNetworkResult(-12)
callback(false, -12)
- ifObj:setNetworkResult(-12)
return
end
@@ -2085,11 +2092,11 @@
-- ------------------------------------------------------------
-- Stop here if not full check is needed
if not full_check then
+ ifObj:setNetworkResult(12)
callback(false, 12, tostring(status.ip_dns))
log:debug("checkNetworkHealth task done (part)")
- ifObj:setNetworkResult(12)
return
end
@@ -2127,8 +2134,8 @@
-- ------------------------------------------------------------
-- Check for server
if not server then
+ ifObj:setNetworkResult(-23)
callback(false, -23)
- ifObj:setNetworkResult(-23)
return
end
@@ -2147,8 +2154,8 @@
-- Check for valid SN ip address
if server_ip == nil then
+ ifObj:setNetworkResult(-27)
callback(false, -27, server_name)
- ifObj:setNetworkResult(-27)
return
end
_______________________________________________
Jive-checkins mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/jive-checkins