Skip to content
Browse files
Add remaining descriptions of changes in 1.0.0.
  • Loading branch information
mike-jumper committed Jan 4, 2019
1 parent 26d79b0 commit c165e3c23f2448f4897f1ad089ba742125df4c0a
Showing 1 changed file with 93 additions and 10 deletions.
@@ -191,6 +191,14 @@ matches.

### Automatic detection of network issues

The Guacamole web application will now periodically check the responsiveness of
the network connection, displaying a warning if the network appears unstable.

Downstream web applications which leverage the Guacamole API should handle the
`Guacamole.Tunnel.State.UNSTABLE` tunnel state in their tunnel's
handler to provide similar behavior, if desired.

* [GUACAMOLE-567]( - Network connection problem acknowledgement/feedback

### Support for configuring Guacamole with environment variables
@@ -320,13 +328,34 @@ issue causes the process to become unresponsive.

### Issues with database authentication behavior and SQL queries

The new SQL Server support introduced with 0.9.14 leveraged SQL syntax that was
not compatible with SQL Server 2008 and later, and contained a bug which
resulted in the login history query failing after several history entries
existed. These issues have been fixed.

A usability issue where users with disabled accounts would be shown a home
screen (albeit entirely blank) has also been fixed, and handling of the
hostname/address logged for user and connection access history has been
updated to be consistent across both underlying tables.

* [GUACAMOLE-505]( - Individual user query fails after two or more login history entries exist
* [GUACAMOLE-525]( - Creating user results in "Incorrect syntax near 'LIMIT'"
* [GUACAMOLE-529]( - Despite the fact user account is disabled, user account can access to a welcome blank screen
* [GUACAMOLE-540]( - Discrepancy with remote_host between tables

### Incorrect status reported for sessions closed by RDP server

Guacamole would previously incorrectly report that an RDP server was
unavailable when the connection was actually closed by the RDP server due to
another user starting a conflicting desktop session. As the web application will
automatically attempt to reconnect if the RDP server is reported as
unavailable (under the assumption that the condition is transient and the
server may eventually become available), this could cause users to repeatedly
kick each other out.

This has been fixed for 1.0.0. Disconnects due to conflicting RDP sessions
should now be handled correctly.

* [GUACAMOLE-484]( - UPSTREAM_UNAVAILABLE incorrectly reported for sessions closed by RDP server

### CAS authorization URI derived incorrectly
@@ -650,7 +679,11 @@ original `UserContext`:

### Removal of deprecated `GuacamoleHome` and `GuacamoleProperties` classes

The `GuacamoleHome` and `GuacamoleProperties` classes have been deprecated
since 0.9.4, having been replaced by the [`Environment`](/doc/1.0.0/guacamole-ext/org/apache/guacamole/environment/Environment.html)
interface and its concrete [`LocalEnvironment`](/doc/1.0.0/guacamole-ext/org/apache/guacamole/environment/LocalEnvironment.html)
implementation. These classes are no longer part of the extension API.
Implementations should migrate to `LocalEnvironment`.

### Deprecation of `SimpleUserDirectory`, `SimpleConnectionDirectory`, and `SimpleConnectionGroupDirectory` classes

@@ -664,36 +697,80 @@ warnings, and will be removed in a future release.

### Deprecation of `SimpleUser` convenience constructors

With the increasing number of permission sets available for both users and user
groups, the old convenience constructors which provided parameters for these
permission sets for the
implementation of the [`User`](/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/User.html)
interface have been deprecated for the sake of API simplicity and consistency.

Implementations which use these constructors of `SimpleUser` should migrate to
extending `SimpleUser` and overriding the applicable getters instead. The
deprecated constructors will continue to work as before, however their use will
result in deprecation warnings, and they will eventually be removed from the

libguac API changes

### `guac_protocol_send_mouse()` now requires additional parameters

The [`guac_protocol_send_mouse()`](/doc/1.0.0/libguac/protocol_8h.html#a8947056262da2f3263b9851370597622)
function now accepts an additional [`guac_timestamp`](/doc/1.0.0/libguac/timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea)
argument representing the point in time that the mouse event occurred. Callers
of this function will now need to include an appropriate timestamp, such as the value returned by

### `GUAC_INSTRUCTION_MAX_ELEMENTS` macro definition changed

TODO (Affects size of [`guac_parser`](/doc/1.0.0/libguac/structguac__parser.html) as well as any code referencing that macro)
The value of the
has been increased from 64 to 128. This should not affect whether existing code
builds against libguac, however it does affect the size of the
[`guac_parser`](/doc/1.0.0/libguac/structguac__parser.html) structure such
that it will not be binary-compatible with older versions of libguac. The
system linker should take this into account automatically.

Java API (guacamole-common) changes

### Removal of deprecated `GuacamoleSession` class

The `GuacamoleSession` class has been deprecated since 0.9.9 and has now been
removed from the API. Downstream usages of this class should simply be removed;
it is entirely unnecessary and has had no effect since 0.9.9.

### Change in definition of `GuacamoleHTTPTunnelServler.sendError()`
### Change in definition of `GuacamoleHTTPTunnelServlet.sendError()`

The definition of the `protected` function
within [`GuacamoleHTTPTunnelServlet`](/doc/1.0.0/guacamole-common/org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html)
has changed to include explicit numeric codes for the Guacamole and HTTP
statuses rather than a single

It is unlikely that this change will affect downstream implementations of
`GuacamoleHTTPTunnelServlet`, which generally will only override
however any downstream implementations which *do* call or override
`sendError()` will need to be updated accordingly.

JavaScript API changes

### Removal of deprecated `GuacamoleClient.setClipboard()` function
### Removal of deprecated `Guacamole.Client.setClipboard()` function

The `setClipboard()` function of
has been deprecated since 0.9.1, having been replaced by
and convenience "writer" implementations like
which may be given the resulting

`setClipboard()` has now been removed from the API. Downstream uses of
`setClipboard()` should migrate to `createClipboardStream()`.

### Addition of `Guacamole.Tunnel.State.UNSTABLE` state

@@ -709,5 +786,11 @@ or that code would benefit from explicitly handling the unstable condition.

### Internal WebSocket tunnel implementation changes

TODO (New use of internal tunnel opcode for connection stability "ping" will affect third-party reimplementations of Guacamole's WebSocket tunnel)
The WebSocket tunnel ([`Guacamole.WebSocketTunnel`](/doc/1.0.0/guacamole-common-js/Guacamole.WebSocketTunnel.html))
now uses the [internal tunnel opcode](/doc/1.0.0/guacamole-common-js/Guacamole.Tunnel.html#.INTERNAL_DATA_OPCODE)
to [send "ping" requests](
which the server side of the tunnel must respond to
[with an identical instruction](
to verify connection stability. Third-party reimplementations of the WebSocket
tunnel will need to be updated to do the same.

0 comments on commit c165e3c

Please sign in to comment.