[spice-html5] Ack every message.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The failure to ack pings led to a nasty bug whereby an inactive client hangs.
The relatively recent change to monitor latency with ping exposed this bug.

Signed-off-by: Jeremy White <jwhite@xxxxxxxxxxxxxxx>
---
 spiceconn.js |   20 +++++++++-----------
 1 file changed, 9 insertions(+), 11 deletions(-)

diff --git a/spiceconn.js b/spiceconn.js
index 494810e..318e9ae 100644
--- a/spiceconn.js
+++ b/spiceconn.js
@@ -318,20 +318,18 @@ SpiceConn.prototype =
         var rc;
         DEBUG > 0 && console.log("<< hdr " + this.channel_type() + " type " + msg.type + " size " + (msg.data && msg.data.byteLength));
         rc = this.process_common_messages(msg);
-        if (rc)
-            return rc;
-
-        if (this.process_channel_message)
-            rc = this.process_channel_message(msg);
-        else
+        if (! rc)
         {
-            this.log_err(this.type + ": No message handlers for this channel; message " + msg.type);
-            return false;
+            if (this.process_channel_message)
+            {
+                rc = this.process_channel_message(msg);
+                if (! rc)
+                    this.log_warn(this.type + ": Unknown message type " + msg.type + "!");
+            }
+            else
+                this.log_err(this.type + ": No message handlers for this channel; message " + msg.type);
         }
- if (! rc)
-            this.log_warn(this.type + ": Unknown message type " + msg.type + "!");
-
         if (this.msgs_until_ack !== undefined && this.ack_window)
         {
             this.msgs_until_ack--;
--
1.7.10.4

_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/spice-devel




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]