Commit Graph

49 Commits

Author SHA1 Message Date
Mike Jumper
d6a01c28e5 GUACAMOLE-615: Migrate tunnel implementations to common parser. 2023-05-09 12:55:43 -07:00
James Muehlner
116edebf36 GUACAMOLE-1687: Merge fix to ensure keep-alive pings are sent. 2023-05-04 16:53:30 -07:00
Michael Jumper
ed19b704cc GUACAMOLE-1687: Clean, document, and clarify usage of tunnel timer reset function. 2023-05-04 16:26:07 -07:00
Michael Jumper
e99e104fb1 GUACAMOLE-1687: Leverage network activity to ensure keep-alive pings are sent. 2023-05-04 16:26:07 -07:00
Michael Jumper
70d2cd97d6 GUACAMOLE-1562: Update chained tunnel UUID when underlying tunnel receives UUID. 2023-05-04 16:21:15 -07:00
Michael Jumper
063557f084 GUACAMOLE-1562: Ensure "ping" response is not erroneously handled as the tunnel UUID. 2023-05-04 16:21:15 -07: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