Commit Graph
47 Commits
Author SHA1 Message Date
Michael Jumper 7f2ea222bb GUACAMOLE-1687: Clean, document, and clarify usage of tunnel timer reset function. 2022-09-28 10:50:25 -07:00
Michael Jumper 3036c96a1f GUACAMOLE-1687: Leverage network activity to ensure keep-alive pings are sent. 2022-09-27 16:46:25 -07:00
Michael Jumper b9e79d99c5 GUACAMOLE-1562: Update chained tunnel UUID when underlying tunnel receives UUID. 2022-03-25 21:37:53 +00:00
Michael Jumper c555fe6411 GUACAMOLE-1562: Ensure "ping" response is not erroneously handled as the tunnel UUID. 2022-03-25 21:37:17 +00:00
Michael Jumper 2428c7eb14 GUACAMOLE-462: Report size of files downloaded via the static HTTP tunnel. 2022-03-02 23:05:02 +00:00
Michael Jumper 8ebe13d085 GUACAMOLE-1545: Ensure tunnel "onload" fires only for true state changes.
Previously, the state of the tunnel implementations was initialized to
"CONNECTING", which is incorrect and may result in (1) initial state
changes to "CONNECTING" not firing "onstatechange" and (2) the state
change to "CLOSED" incorrectly firing when initially connecting,
despite there not being an established connection.
2022-03-02 20:35:52 +00:00
Michael Jumper 2c8bc58402 GUACAMOLE-896: Avoid XHR-related memory limitations by using Fetch API.
The Fetch API allows us to read HTTP responses as true streams, without
building an in-memory string. We can the buffer things ourselves as we
see fit, including as a Blob that can dynamically leverage disk storage
for larger data.
2022-02-11 17:17:44 -08:00
Michael Jumper 1ca1161a68 GUACAMOLE-986: Update documentation of all parameters/returns to specify non-nullable and/or primitive types where appropriate. 2021-12-18 23:03:57 -08:00
Michael Jumper 0597358dde GUACAMOLE-956: Decouple tunnel UUID from HTTP tunnel session identification. 2021-10-23 22:29:39 -07:00
Mike Jumper ed849860b8 GUACAMOLE-986: Merge explicit documentation of non-nullable return values and parameters. 2021-02-21 16:03:54 -08:00
Michael Jumper 5ad3389a23 GUACAMOLE-221: Define event for client-side receipt of a tunnel UUID. 2020-11-25 15:24:31 -08:00
Jakub Vrána f722072807 GUACAMOLE-986: Add non-nullable modifier to return type of functions never returning null
Alternatively use a primitive type instead of nullable boxed type.
2020-03-11 13:27:56 +01:00
avwx e17453ef97 GUACAMOLE-846: tunnel.uuid not initialized if tunnel becomes UNSTABLE 2019-07-16 18:02:30 -04:00
Michael Jumper dee4e89ede GUACAMOLE-437: Remove erroneously-committed, non-breaking spaces (U+00A0) from source. 2018-09-29 15:04:28 -07:00
Michael Jumper 34bab9524e GUACAMOLE-567: Regularly test connection stability of HTTP tunnel.
Unlike the WebSocket tunnel, where a manual ping request/response must
be explicitly implemented, we can rely on HTTP's own request/response
to verify stability.
2018-09-07 12:20:28 -07:00
Michael Jumper ea0b33bee1 GUACAMOLE-567: Use ping messages specific to the WebSocket tunnel to test connection stability independently of the underlying Guacamole connection. 2018-09-07 12:20:28 -07:00
Michael Jumper 5825835237 GUACAMOLE-567: Add tunnel isConnected() function. Consider both OPEN and UNSTABLE status as connected. 2018-09-07 12:20:28 -07:00
Michael Jumper e6f3665995 GUACAMOLE-567: Add UNSTABLE tunnel status. Mark tunnel as UNSTABLE if no data has been received in a reasonable amount of time, but the tunnel is technically still open. 2018-05-27 15:43:41 -07:00
Michael Jumper ca98d07b4a GUACAMOLE-567: Rely on HTTP or WebSocket status code to determine error if Guacamole-specific reason is missing. Default to server unreachable. 2018-05-27 12:29:10 -07:00
Ignasi Barrera e12d547973 GUACAMOLE-437: Fix extraHeaders in the StaticHTTPTunnel 2017-11-20 18:43:14 +01:00
Ignasi Barrera 227e41fbd9 GUACAMOLE-437: Fix extraHeaders scope 2017-11-20 18:41:43 +01:00
Ignasi Barrera 948b4e804c GUACAMOLE-437: Custom headers for Guacamole tunnel 2017-11-19 03:45:39 +01:00
Or Cohen 63f603ec9d GUACAMOLE-431: Fix tunnel stuck in CLOSED state
When the tunnel is closed and another `connect()` call is made, it stops
notifying about state changes (`onstatechanges`) if the connection continues
to fail.

This patch sets the state to `CONNECTING` when calling `connect()`.
2017-11-07 12:41:51 +02:00
Or Cohen d778ad7035 GUACAMOLE-431: Move setState to base Tunnel class
Move `setState()` to Tunnel class to avoid repetition.
2017-11-07 12:41:40 +02:00
Ignasi Barrera 3fbf176a15 GUACAMOLE-385: Proper MIME type for tunnel write operations 2017-09-23 20:57:11 +02:00
Michael Jumper 5d6c774be8 GUACAMOLE-250: Ensure static downloads of Guacamole protocol data are handled as text, even if the "Content-Type" header is missing. 2017-04-14 10:31:24 -07:00
Michael Jumper f915862f3b GUACAMOLE-250: Add tunnel implementation which reads static files via HTTP. 2017-04-11 16:33:18 -07:00
Tyler Schneider b5bd316dfd GUACAMOLE-229: Remove intervals properly when XHR is polling. 2017-03-02 11:59:58 -07:00
Michael Jumper d398509660 GUACAMOLE-44: Expose tunnel UUID to JavaScript. Document allowed internal use of the empty opcode. 2016-06-02 12:50:50 -07:00
Michael Jumper 1810ec971f GUACAMOLE-1: Relicense C and JavaScript files. 2016-03-28 20:50:18 -07:00
Michael Jumper 2959513d95 GUAC-791: Fix type expressions to comply with JSDoc 3. 2015-12-14 14:51:15 -08:00
James Muehlner 1b4181a200 GUAC-1430: Do not move on to the next chained tunnel on upstream timeout. 2015-12-09 21:15:15 -08:00
Michael Jumper 19eb4e3971 GUAC-1083: Clarify new optional parameter for controlling CORS within Guacamole.HTTPTunnel. 2015-07-07 22:06:37 -07:00
david 8d4e413e2c GUAC-1083: Add CORS support to Guacamole.HTTPTunnel 2015-07-07 21:42:07 -07:00
Michael Jumper 9d0703125a GUAC-1084: Clarify comment describing committedTunnel. 2015-07-07 21:21:18 -07:00
Michael Jumper f3573f0a59 Merge branch 'ChainedTunnelReconnectFix' of git://github.com/daviddvora/guacamole-client into chained-tunnel-reconnect 2015-07-07 21:18:58 -07:00
David Dvora aad8bf8d2c GUAC-1082: HTTP tunnel fails to reconnect 2015-03-31 12:18:05 -07:00
david 28ce81a4d9 GUAC-1084: ChainedTunnel does not support reconnect 2015-02-12 14:48:39 +02:00
Michael Jumper 5ad6d77ef6 GUAC-561: Close tunnel with timeout error code if data not received from server. 2014-03-23 12:48:07 -07:00
Michael Jumper 28711720f7 GUAC-558: Use same error handling function throughout HTTP tunnel. Ignore RESOURCE_NOT_FOUND for connected HTTP tunnels as that actually signals end-of-stream. 2014-03-21 19:28:17 -07:00
Michael Jumper 7cb933c9c1 GUAC-558: Ensure state/error handlers are called ONLY on the last tunnel. Rewrite to clean program flow. 2014-03-21 18:54:04 -07:00
Michael Jumper f183e29586 GUAC-558: Fix calls to onerror handler, switch to corresponding close_tunnel() prototype. 2014-03-21 18:22:12 -07:00
Michael Jumper c5573f9811 GUAC-558: Do NOT make initial request if connect failed. 2014-03-21 18:10:27 -07:00
Michael Jumper 7dbb1b1ac0 GUAC-558: Do not send pending messages if tunnel is closed. 2014-03-21 18:06:59 -07:00
Michael Jumper 627271953d GUAC-558: Add specific handler for tunnel state change. Add state property and values. Clean up warnings. 2014-03-21 16:46:55 -07:00
Michael Jumper d4a6fd21f7 GUAC-549: Throw status instead of error for connect() in tunnel and client. Pass status instead of message/code parameters for onerror event handlers. 2014-03-19 13:58:52 -07:00
Michael Jumper 6c00d8428c Migrate to minify-maven-plugin and Google Closure Compiler. 2014-01-15 21:50:18 -08:00