Merge branch 'ChainedTunnelReconnectFix' of git://github.com/daviddvora/guacamole-client into chained-tunnel-reconnect

This commit is contained in:
Michael Jumper
2015-07-07 21:18:58 -07:00

View File

@@ -842,6 +842,12 @@ Guacamole.ChainedTunnel = function(tunnel_chain) {
*/ */
var tunnels = []; var tunnels = [];
/**
* Stores a single committed tunnel once committed
* @private
*/
var committedTunnel;
// Load all tunnels into array // Load all tunnels into array
for (var i=0; i<arguments.length; i++) for (var i=0; i<arguments.length; i++)
tunnels.push(arguments[i]); tunnels.push(arguments[i]);
@@ -893,6 +899,7 @@ Guacamole.ChainedTunnel = function(tunnel_chain) {
tunnel.onstatechange = chained_tunnel.onstatechange; tunnel.onstatechange = chained_tunnel.onstatechange;
tunnel.oninstruction = chained_tunnel.oninstruction; tunnel.oninstruction = chained_tunnel.oninstruction;
tunnel.onerror = chained_tunnel.onerror; tunnel.onerror = chained_tunnel.onerror;
committedTunnel = tunnel;
} }
// Wrap own onstatechange within current tunnel // Wrap own onstatechange within current tunnel
@@ -948,8 +955,8 @@ Guacamole.ChainedTunnel = function(tunnel_chain) {
// Remember connect data // Remember connect data
connect_data = data; connect_data = data;
// Get first tunnel // Get committed tunnel if exists or the first tunnel on the list
var next_tunnel = tunnels.shift(); var next_tunnel = committedTunnel ? committedTunnel : tunnels.shift();
// Attach first tunnel // Attach first tunnel
if (next_tunnel) if (next_tunnel)