Author: richard
Date: Fri Jan 16 07:22:16 2009
New Revision: 3856

URL: http://svn.slimdevices.com?rev=3856&root=Jive&view=rev
Log:
Bug: 10236
Description:
slimproto fix, some packets were getting lost and that could make playback stop.


Modified:
    7.3/trunk/squeezeplay/src/squeezeplay/share/jive/net/SlimProto.lua

Modified: 7.3/trunk/squeezeplay/src/squeezeplay/share/jive/net/SlimProto.lua
URL: 
http://svn.slimdevices.com/7.3/trunk/squeezeplay/src/squeezeplay/share/jive/net/SlimProto.lua?rev=3856&root=Jive&r1=3855&r2=3856&view=diff
==============================================================================
--- 7.3/trunk/squeezeplay/src/squeezeplay/share/jive/net/SlimProto.lua 
(original)
+++ 7.3/trunk/squeezeplay/src/squeezeplay/share/jive/net/SlimProto.lua Fri Jan 
16 07:22:16 2009
@@ -62,6 +62,7 @@
 local table       = require("jive.utils.table")
 
 local Framework   = require("jive.ui.Framework")
+local Task        = require("jive.ui.Task")
 local Timer       = require("jive.ui.Timer")
 
 local SocketTcp   = require("jive.net.SocketTcp")
@@ -319,6 +320,7 @@
 
        -- connection state UNCONNECTED / CONNECTED
        obj.state          = UNCONNECTED
+       obj.txqueue  = {}
 
        -- helo packet sent on connection
        obj.heloPacket     = heloPacket
@@ -431,6 +433,17 @@
                self.reconnect = true
        end
 
+       self.writePump = function(NetworkThreadErr)
+               if (NetworkThreadErr) then
+                       return _handleDisconnect(NetworkThreadErr)
+               end
+
+               self.socket.t_sock:send(table.concat(self.txqueue))
+               self.socket:t_removeWrite()
+
+               self.txqueue = {}
+       end
+
        if server then
                self.server = server
                self.reconnect = false
@@ -537,16 +550,9 @@
 
        --_hexDump("STAT", data)
 
-       local pump = function(NetworkThreadErr)
-               if (NetworkThreadErr) then
-                       return _handleDisconnect(NetworkThreadErr)
-               end
-
-               self.socket.t_sock:send(data)
-               self.socket:t_removeWrite()
-       end
-
-       self.socket:t_addWrite(pump, WRITE_TIMEOUT)
+       table.insert(self.txqueue, data)
+
+       self.socket:t_addWrite(self.writePump, WRITE_TIMEOUT)
 
        return true
 end

_______________________________________________
Jive-checkins mailing list
[email protected]
http://lists.slimdevices.com/cgi-bin/mailman/listinfo/jive-checkins

Reply via email to