Only chain to next tunnel if no instructions received. Pass through errors otherwise.
[guacamole-common-js.git] / src / main / resources / tunnel.js
index 835f9f5..3a0a481 100644 (file)
@@ -674,7 +674,16 @@ Guacamole.ChainedTunnel = function() {
 
         // Wrap own oninstruction within current tunnel
         current_tunnel.oninstruction = function(opcode, elements) {
+            
+            // Invoke handler
             chained_tunnel.oninstruction(opcode, elements);
+
+            // Use handler permanently from now on
+            current_tunnel.oninstruction = chained_tunnel.oninstruction;
+
+            // Pass through errors (without trying other tunnels)
+            current_tunnel.onerror = chained_tunnel.onerror;
+            
         }
 
         // Attach next tunnel on error