GUACAMOLE-567: Add tunnel isConnected() function. Consider both OPEN and UNSTABLE status as connected.
Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/58258352 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/58258352 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/58258352 Branch: refs/heads/staging/1.0.0 Commit: 5825835237fbd3307f7da09b3958d4f458fe8598 Parents: fe07cf9 Author: Michael Jumper <mjum...@apache.org> Authored: Sat Sep 1 21:12:10 2018 -0700 Committer: Michael Jumper <mjum...@apache.org> Committed: Fri Sep 7 12:20:28 2018 -0700 ---------------------------------------------------------------------- .../src/main/webapp/modules/Tunnel.js | 21 +++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/58258352/guacamole-common-js/src/main/webapp/modules/Tunnel.js ---------------------------------------------------------------------- diff --git a/guacamole-common-js/src/main/webapp/modules/Tunnel.js b/guacamole-common-js/src/main/webapp/modules/Tunnel.js index 52bd20a..06cc741 100644 --- a/guacamole-common-js/src/main/webapp/modules/Tunnel.js +++ b/guacamole-common-js/src/main/webapp/modules/Tunnel.js @@ -74,6 +74,17 @@ Guacamole.Tunnel = function() { }; /** + * Returns whether this tunnel is currently connected. + * + * @returns {Boolean} + * true if this tunnel is currently connected, false otherwise. + */ + this.isConnected = function isConnected() { + return this.state === Guacamole.Tunnel.State.OPEN + || this.state === Guacamole.Tunnel.State.UNSTABLE; + }; + + /** * The current state of this tunnel. * * @type {Number} @@ -342,7 +353,7 @@ Guacamole.HTTPTunnel = function(tunnelURL, crossDomain, extraTunnelHeaders) { this.sendMessage = function() { // Do not attempt to send messages if not connected - if (tunnel.state !== Guacamole.Tunnel.State.OPEN) + if (!tunnel.isConnected()) return; // Do not attempt to send empty messages @@ -384,7 +395,7 @@ Guacamole.HTTPTunnel = function(tunnelURL, crossDomain, extraTunnelHeaders) { function sendPendingMessages() { // Do not attempt to send messages if not connected - if (tunnel.state !== Guacamole.Tunnel.State.OPEN) + if (!tunnel.isConnected()) return; if (outputMessageBuffer.length > 0) { @@ -462,7 +473,7 @@ Guacamole.HTTPTunnel = function(tunnelURL, crossDomain, extraTunnelHeaders) { function parseResponse() { // Do not handle responses if not connected - if (tunnel.state !== Guacamole.Tunnel.State.OPEN) { + if (!tunnel.isConnected()) { // Clean up interval if polling if (interval !== null) @@ -835,7 +846,7 @@ Guacamole.WebSocketTunnel = function(tunnelURL) { this.sendMessage = function(elements) { // Do not attempt to send messages if not connected - if (tunnel.state !== Guacamole.Tunnel.State.OPEN) + if (!tunnel.isConnected()) return; // Do not attempt to send empty messages @@ -945,7 +956,7 @@ Guacamole.WebSocketTunnel = function(tunnelURL) { var opcode = elements.shift(); // Update state and UUID when first instruction received - if (tunnel.state !== Guacamole.Tunnel.State.OPEN) { + if (tunnel.state === Guacamole.Tunnel.State.CONNECTING) { // Associate tunnel UUID if received if (opcode === Guacamole.Tunnel.INTERNAL_DATA_OPCODE)