The release below is from prior to Guacamole's acceptance into the Apache Incubator. It is not an Apache Software Foundation release, and is licensed under the MIT license.
The 0.9.9 release of Guacamole features improved performance due to dynamic use of JPEG and WebP, as well as greatly improved LDAP support. The Guacamole interface overall is now all but completely searchable/filterable, with “Filter” fields available on every connection and user list. This interface-wide availability of filtering includes the home screen, all user and connection lists within the administration interface, as well as the completely new and unified connection history screen.
Everything is searchable
Just about every list in the Guacamole interface is now searchable, including the list of connections on the home screen, all connection and user lists in the admin interface, and the new connection history screen.
Users with large numbers of connections (and administrators managing large numbers of users and connections) can now narrow their view by entering search terms into any of the “Filter” fields. There is no longer any need to hop back and forth through dozens of pages to find that one connection within a haystack of several hundred connections.
- [GUAC-1193] - Centralize usage statistics
- [GUAC-1406] - Allow connection and user lists to be filtered
Dynamic JPEG/WebP compression
Previous releases of Guacamole encoded images purely using PNG compression. This was very efficient for typical remote desktop use, but anything involving fast moving or photographic imagery would tend to slow down.
Thanks to the contributions and collaboration of Frode Langelo of Skytap, Guacamole will now select between PNG, JPEG, and WebP depending on how fast parts of your screen are changing, the content of those areas, and which encodings are supported by your browser.
- [GUAC-240] - Implement streaming of JPEG images
- [GUAC-1305] - Implement support for WebP encoded images
Guacamole’s LDAP support can now be used with more complex directory hierarchies, such as those used by Active Directory. In addition to directly deriving a user’s DN using a base DN and username attribute, Guacamole can now search for and discover a user’s DN when given the necessary credentials to do so. This allows users to be mapped even if their DNs do not contain usernames.
Encrypted LDAP can now also be used. Past releases supported only unencrypted LDAP connections, but communication with LDAP servers using SSL/TLS or STARTTLS is now fully supported.
- [GUAC-1115] - Support complex LDAP organizational structures
- [GUAC-1166] - Support for LDAP over SSL/TLS
- [GUAC-1342] - Passthrough authentication not working for LDAP in 0.9.8
Run commands via SSH
The equivalent of the
-c option has now been implemented
within Guacamole. By specifying a value for the
command parameter of an SSH
connection (or by entering a value within the appropriate field in the admin
interface), the SSH connection will run the specified command instead of simply
invoking the default shell.
- [GUAC-1038] - Add parameter for running command via SSH
Sound, printing, and file transfer fixed on Windows 2012
Windows Server 2012 suffers from a bug which requires both RDPDR (drive redirection or printing) and RDPSND (audio) to be loaded for either to work, even if both are not actually needed. Past releases of Guacamole had a workaround for this which automatically loaded RDPDR if audio was enabled, but this workaround did not apply in the other direction. If audio was disabled, printing and file transfer would mysteriously not work.
As of Guacamole 0.9.9, both RDPSND and RDPDR will always be loaded if either is enabled. File transfer, printing, and sound should all work under Windows Server 2012, regardless of which combination of those features is enabled.
- [GUAC-1196] - RDPSND and RDPDR must be loaded together
Linking Docker images to non-Docker databases
The Guacamole Docker images previously required 100% Docker everything when it Came to deployment. Both the web application and guacd needed to be within Docker, and the database backing the web application (MySQL or PostgreSQL) needed to be within Docker as well.
While all Guacamole components (the web application and guacd) still need to be within Docker if Docker is going to be used, the requirement that the database be within Docker has been removed. The hostname and port of your database can now be specified when creating the Guacamole Docker container. The database does not need to be specified with a Docker link.
- [GUAC-1291] - Allow linking with non-Docker MySQL/PostgreSQL databases
Guacamole API and protocol changes
The Guacamole extension API has also been updated, allowing extensions to automatically invalidate users’ sessions by throwing specific exceptions which by their own nature imply that the user’s current session is invalid. These exceptions are automatically caught and handled within the Guacamole web application, invalidating the user’s session and displaying a login dialog.
- [GUAC-1354] - Add real-time video streaming support to Guacamole protocol
- [GUAC-1364] - Allow extensions to invalidate user sessions
Minor improvements / bug fixes
In addition to the above major improvements, several minor improvements and bug fixes are included in 0.9.9, including additional translations, changes to interface layout and behavior, and improved support for Microsoft Edge.
- [GUAC-554] - WebSocket connection errors not exposed
- [GUAC-555] - WebSocket connection errors cannot be detected as required by connect()
- [GUAC-799] - Guacamole.Status is undocumented
- [GUAC-1250] - Display login page instead of “reconnect/home” when session expires
- [GUAC-1314] - Support distinct keysyms for numeric keypad
- [GUAC-1324] - “Currently in use” text overlaps connection name on mobile
- [GUAC-1338] - Add German missing translations
- [GUAC-1345] - Allow available languages to be restricted
- [GUAC-1349] - File transfer dialog overflows screen
- [GUAC-1361] - listen() need not be present in main loop
- [GUAC-1374] - “guac_socket_alloc()” must initialize “__keep_alive_enabled”
- [GUAC-1376] - Add “logout” action to disconnect/error notifications
- [GUAC-1380] - Added missing Dutch translations
- [GUAC-1404] - Active sessions list sometimes contains closed connections