| <!DOCTYPE html> |
| <html xmlns="http://www.w3.org/1999/xhtml"> |
| |
| <head> |
| <link rel="stylesheet" href="/styles/main.css?s=1714581448"> |
| <link rel="icon" type="image/svg+xml" href="/images/logos/guac-classic-logo.svg"/> |
| <link rel="icon" type="image/png" href="/images/logos/guac-classic-logo-64.png"/> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/> |
| <meta charset="UTF-8"/> |
| <title>Apache Guacamole™: 1.5.4</title> |
| </head> |
| |
| |
| <body class=""> |
| |
| <!-- Header --> |
| <div id="header"> |
| <div class="readable-content"> |
| <h1><a href="/">Apache Guacamole™</a></h1> |
| <ul id="navigation" class="menu"> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="/releases/" |
| |
| class="releases" |
| >Release Archives</a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="dropdown"> |
| |
| <a class="dropdown-toggle " |
| href="#">Documentation</a> |
| <ul class="dropdown-menu"> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="/faq/" |
| >FAQ</a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="/api-documentation/" |
| >API / Development</a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="/doc/gug/" |
| >Guacamole Manual</a> |
| </li> |
| |
| |
| |
| |
| |
| </ul> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="dropdown"> |
| |
| <a class="dropdown-toggle " |
| href="#">Community</a> |
| <ul class="dropdown-menu"> |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="/open-source/" |
| >Contributing to Guacamole</a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="/support/#mailing-lists" |
| >Mailing Lists</a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="https://issues.apache.org/jira/browse/GUACAMOLE/" |
| >Bug/Issue Tracker</a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="https://github.com/search?utf8=%E2%9C%93&q=repo%3Aapache%2Fguacamole-client+repo%3Aapache%2Fguacamole-server+repo%3Aapache%2Fguacamole-manual+repo%3Aapache%2Fguacamole-website&type=repositories&ref=searchresults" |
| >Source Code</a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| </ul> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="/security/" |
| >Security Reports</a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="dropdown"> |
| |
| <a class="dropdown-toggle " |
| href="#">Support</a> |
| <ul class="dropdown-menu"> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="/support/#mailing-lists" |
| >Mailing Lists</a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="https://issues.apache.org/jira/browse/GUACAMOLE/" |
| >Bug/Issue Tracker</a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="/support/#commercial-support" |
| >Commercial Support</a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| </ul> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="dropdown"> |
| |
| <a class="dropdown-toggle apache" |
| href="#">ASF</a> |
| <ul class="dropdown-menu"> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="http://www.apache.org/" |
| >ASF Homepage</a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="http://www.apache.org/licenses/" |
| >License</a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="http://www.apache.org/foundation/thanks.html" |
| >Thanks</a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="http://www.apache.org/foundation/sponsorship.html" |
| >Sponsorship</a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="http://www.apache.org/foundation/policies/conduct.html" |
| >Code of Conduct</a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| </ul> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| </ul> |
| </div> |
| </div> |
| |
| |
| <!-- Content --> |
| <div class="fullwidth-content"> |
| <h1 class="title"> |
| Apache Guacamole 1.5.4 |
| <span class="release-type"> |
| |
| |
| (Archived) |
| |
| </span> |
| </h1> |
| |
| <div class="readable-content"> |
| |
| |
| |
| |
| |
| <div class="note"> |
| <p>Apache Guacamole 1.5.4 is an archived release, and was |
| originally released on 2023-12-07. <strong>The |
| latest release of Apache Guacamole is <a href="/releases/1.5.5/">1.5.5</a>.</strong></p> |
| </div> |
| |
| |
| <div id="links"> |
| |
| |
| |
| <h2>Release documentation</h2> |
| |
| <ul> |
| |
| <li><a href="/doc/1.5.4/gug">Manual</a></li> |
| |
| <li><a href="/doc/1.5.4/guacamole-common">guacamole-common</a></li> |
| |
| <li><a href="/doc/1.5.4/guacamole-common-js">guacamole-common-js</a></li> |
| |
| <li><a href="/doc/1.5.4/guacamole-ext">guacamole-ext</a></li> |
| |
| <li><a href="/doc/1.5.4/libguac">libguac</a></li> |
| |
| <li><a href="/doc/1.5.4/libguac-terminal">libguac-terminal</a></li> |
| |
| </ul> |
| |
| |
| |
| </div> |
| |
| <p>Apache Guacamole is split into two subprojects: "guacamole-client", the |
| HTML5 web application which serves the Guacamole client to users, and |
| "guacamole-server", the remote desktop proxy which the web application |
| communicates with. The source code for each of these may be downloaded |
| below.</p> |
| |
| <p>You <strong>must</strong> <a href="https://www.apache.org/info/verification.html"> |
| verify the integrity of any downloaded files</a> using the OpenPGP signatures |
| we provide with each release. The signatures should be verified against the |
| <a href="https://downloads.apache.org/guacamole/KEYS">KEYS</a> |
| file, which contains the OpenPGP keys of Apache Guacamole's Release Managers. |
| Checksums of each released file are also provided.</p> |
| |
| <!-- Source archives --> |
| <div class="release-downloads"> |
| |
| <table> |
| <tr> |
| <th>Filename</th> |
| <th>Signatures / Hashes</th> |
| </tr> |
| |
| |
| <tr> |
| |
| |
| <td class="filename"><a href="https://archive.apache.org/dist/guacamole/1.5.4/source/guacamole-client-1.5.4.tar.gz">guacamole-client-1.5.4.tar.gz</a></td> |
| <td class="signatures"> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.5.4/source/guacamole-client-1.5.4.tar.gz.asc">PGP</a> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.5.4/source/guacamole-client-1.5.4.tar.gz.sha256">SHA-256</a> |
| |
| </td> |
| </tr> |
| |
| <tr> |
| |
| |
| <td class="filename"><a href="https://archive.apache.org/dist/guacamole/1.5.4/source/guacamole-server-1.5.4.tar.gz">guacamole-server-1.5.4.tar.gz</a></td> |
| <td class="signatures"> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.5.4/source/guacamole-server-1.5.4.tar.gz.asc">PGP</a> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.5.4/source/guacamole-server-1.5.4.tar.gz.sha256">SHA-256</a> |
| |
| </td> |
| </tr> |
| |
| </table> |
| |
| |
| </div> |
| |
| <p>If you do not wish to build Apache Guacamole entirely from source, pre-built |
| versions of the web application (.war) and all extensions are provided here in |
| binary form for convenience. <strong>Please note that guacamole-server must |
| still be built and installed from source.</strong></p> |
| |
| <!-- All binaries --> |
| <div class="release-downloads"> |
| |
| <table> |
| <tr> |
| <th>Filename</th> |
| <th>Signatures / Hashes</th> |
| </tr> |
| |
| |
| <tr> |
| |
| |
| <td class="filename"><a href="https://archive.apache.org/dist/guacamole/1.5.4/binary/guacamole-1.5.4.war">guacamole-1.5.4.war</a></td> |
| <td class="signatures"> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.5.4/binary/guacamole-1.5.4.war.asc">PGP</a> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.5.4/binary/guacamole-1.5.4.war.sha256">SHA-256</a> |
| |
| </td> |
| </tr> |
| |
| <tr> |
| |
| |
| <td class="filename"><a href="https://archive.apache.org/dist/guacamole/1.5.4/binary/guacamole-auth-duo-1.5.4.tar.gz">guacamole-auth-duo-1.5.4.tar.gz</a></td> |
| <td class="signatures"> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.5.4/binary/guacamole-auth-duo-1.5.4.tar.gz.asc">PGP</a> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.5.4/binary/guacamole-auth-duo-1.5.4.tar.gz.sha256">SHA-256</a> |
| |
| </td> |
| </tr> |
| |
| <tr> |
| |
| |
| <td class="filename"><a href="https://archive.apache.org/dist/guacamole/1.5.4/binary/guacamole-auth-header-1.5.4.tar.gz">guacamole-auth-header-1.5.4.tar.gz</a></td> |
| <td class="signatures"> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.5.4/binary/guacamole-auth-header-1.5.4.tar.gz.asc">PGP</a> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.5.4/binary/guacamole-auth-header-1.5.4.tar.gz.sha256">SHA-256</a> |
| |
| </td> |
| </tr> |
| |
| <tr> |
| |
| |
| <td class="filename"><a href="https://archive.apache.org/dist/guacamole/1.5.4/binary/guacamole-auth-jdbc-1.5.4.tar.gz">guacamole-auth-jdbc-1.5.4.tar.gz</a></td> |
| <td class="signatures"> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.5.4/binary/guacamole-auth-jdbc-1.5.4.tar.gz.asc">PGP</a> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.5.4/binary/guacamole-auth-jdbc-1.5.4.tar.gz.sha256">SHA-256</a> |
| |
| </td> |
| </tr> |
| |
| <tr> |
| |
| |
| <td class="filename"><a href="https://archive.apache.org/dist/guacamole/1.5.4/binary/guacamole-auth-json-1.5.4.tar.gz">guacamole-auth-json-1.5.4.tar.gz</a></td> |
| <td class="signatures"> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.5.4/binary/guacamole-auth-json-1.5.4.tar.gz.asc">PGP</a> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.5.4/binary/guacamole-auth-json-1.5.4.tar.gz.sha256">SHA-256</a> |
| |
| </td> |
| </tr> |
| |
| <tr> |
| |
| |
| <td class="filename"><a href="https://archive.apache.org/dist/guacamole/1.5.4/binary/guacamole-auth-ldap-1.5.4.tar.gz">guacamole-auth-ldap-1.5.4.tar.gz</a></td> |
| <td class="signatures"> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.5.4/binary/guacamole-auth-ldap-1.5.4.tar.gz.asc">PGP</a> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.5.4/binary/guacamole-auth-ldap-1.5.4.tar.gz.sha256">SHA-256</a> |
| |
| </td> |
| </tr> |
| |
| <tr> |
| |
| |
| <td class="filename"><a href="https://archive.apache.org/dist/guacamole/1.5.4/binary/guacamole-auth-quickconnect-1.5.4.tar.gz">guacamole-auth-quickconnect-1.5.4.tar.gz</a></td> |
| <td class="signatures"> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.5.4/binary/guacamole-auth-quickconnect-1.5.4.tar.gz.asc">PGP</a> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.5.4/binary/guacamole-auth-quickconnect-1.5.4.tar.gz.sha256">SHA-256</a> |
| |
| </td> |
| </tr> |
| |
| <tr> |
| |
| |
| <td class="filename"><a href="https://archive.apache.org/dist/guacamole/1.5.4/binary/guacamole-auth-sso-1.5.4.tar.gz">guacamole-auth-sso-1.5.4.tar.gz</a></td> |
| <td class="signatures"> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.5.4/binary/guacamole-auth-sso-1.5.4.tar.gz.asc">PGP</a> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.5.4/binary/guacamole-auth-sso-1.5.4.tar.gz.sha256">SHA-256</a> |
| |
| </td> |
| </tr> |
| |
| <tr> |
| |
| |
| <td class="filename"><a href="https://archive.apache.org/dist/guacamole/1.5.4/binary/guacamole-auth-totp-1.5.4.tar.gz">guacamole-auth-totp-1.5.4.tar.gz</a></td> |
| <td class="signatures"> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.5.4/binary/guacamole-auth-totp-1.5.4.tar.gz.asc">PGP</a> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.5.4/binary/guacamole-auth-totp-1.5.4.tar.gz.sha256">SHA-256</a> |
| |
| </td> |
| </tr> |
| |
| <tr> |
| |
| |
| <td class="filename"><a href="https://archive.apache.org/dist/guacamole/1.5.4/binary/guacamole-history-recording-storage-1.5.4.tar.gz">guacamole-history-recording-storage-1.5.4.tar.gz</a></td> |
| <td class="signatures"> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.5.4/binary/guacamole-history-recording-storage-1.5.4.tar.gz.asc">PGP</a> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.5.4/binary/guacamole-history-recording-storage-1.5.4.tar.gz.sha256">SHA-256</a> |
| |
| </td> |
| </tr> |
| |
| <tr> |
| |
| |
| <td class="filename"><a href="https://archive.apache.org/dist/guacamole/1.5.4/binary/guacamole-vault-1.5.4.tar.gz">guacamole-vault-1.5.4.tar.gz</a></td> |
| <td class="signatures"> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.5.4/binary/guacamole-vault-1.5.4.tar.gz.asc">PGP</a> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.5.4/binary/guacamole-vault-1.5.4.tar.gz.sha256">SHA-256</a> |
| |
| </td> |
| </tr> |
| |
| </table> |
| |
| |
| </div> |
| |
| <!-- Release notes --> |
| <div id="release-notes"> |
| <h1>Release notes</h1> |
| <p>The 1.5.4 release is a bugfix release that addresses miscellaneous bugs from |
| 1.5.3 and earlier, and updates all dependencies to their latest compatible |
| versions. For a full list of all changes in this release, please see the |
| <a href="#changelog">changelog</a> below.</p> |
| |
| <p><strong>The 1.5.4 release is compatible with older 1.x components.</strong> You should |
| upgrade older components to 1.5.4 when possible, however things should continue |
| to work correctly in the interim:</p> |
| |
| <ul> |
| <li>Extensions written for older 1.x releases can be used by 1.5.4.</li> |
| <li>Components written for the version of the Guacamole protocol used by older |
| 1.x releases can be used with components of the 1.5.4 release.</li> |
| </ul> |
| |
| <p>Regardless of inter-component compatibility, <strong>there are changes in 1.5.4 which |
| may affect downstream users of Guacamole’s APIs</strong>. Please see the <a href="#deprecation--compatibility-notes">deprecation |
| / compatibility notes</a> section for more |
| information.</p> |
| |
| <h1 id="changelog">Changelog</h1> |
| |
| <h3 id="user-interface--platform">User interface / platform</h3> |
| |
| <ul> |
| <li>History Recording Player should show controls when mouse is moved (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1872">GUACAMOLE-1872</a>)</li> |
| <li class="bug">Control bar doesn’t auto-hide on history recording player (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1873">GUACAMOLE-1873</a>)</li> |
| </ul> |
| |
| <h3 id="docker-images">Docker images</h3> |
| |
| <ul> |
| <li class="bug">Typo in environment variables for Dockerfile (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1860">GUACAMOLE-1860</a>)</li> |
| </ul> |
| |
| <h3 id="authentication-integration-and-storage">Authentication, integration, and storage</h3> |
| |
| <ul> |
| <li class="bug">Regression in JSON module causes loading to fail (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1851">GUACAMOLE-1851</a>)</li> |
| <li class="bug">Permission check for creating user groups is incorrect (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1856">GUACAMOLE-1856</a>)</li> |
| </ul> |
| |
| <h3 id="protocol-support--guacd">Protocol support / guacd</h3> |
| |
| <ul> |
| <li class="bug">Race condition can cause the first user for a connection to miss updates (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1846">GUACAMOLE-1846</a>)</li> |
| <li class="bug">Parser reparses same instructions multiple times in some cases (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1849">GUACAMOLE-1849</a>)</li> |
| <li class="bug">guac_common_cursor_dup() may segfault if cursor is being modified (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1850">GUACAMOLE-1850</a>)</li> |
| <li>Add libguac convenience functions for memory management (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1867">GUACAMOLE-1867</a>)</li> |
| </ul> |
| |
| <h3 id="internationalization">Internationalization</h3> |
| |
| <ul> |
| <li>Updates and corrections to Catalan translation (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1880">GUACAMOLE-1880</a>)</li> |
| </ul> |
| |
| <h3 id="documentation">Documentation</h3> |
| |
| <ul> |
| <li>TOTP Authentication - Add documentation relating to usage with docker (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1878">GUACAMOLE-1878</a>)</li> |
| </ul> |
| |
| <h3 id="general-housekeeping-and-cleanup">General housekeeping and cleanup</h3> |
| |
| <ul> |
| <li>Update webapp dependencies to latest stable and compatible versions (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1859">GUACAMOLE-1859</a>)</li> |
| <li>Bump version numbers to 1.5.4 (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1886">GUACAMOLE-1886</a>)</li> |
| </ul> |
| |
| <h1 id="deprecation--compatibility-notes">Deprecation / Compatibility notes</h1> |
| |
| <p>Each 1.x release of Apache Guacamole should be compatible with components of |
| older 1.x releases. This compatibility is intended at the Guacamole protocol |
| level and at the extension level, but not necessarily at the API level. This |
| means:</p> |
| |
| <ul> |
| <li>Extensions from older 1.x releases should still work in binary form, but may |
| need code changes before their source will build against a newer version of |
| guacamole-ext.</li> |
| <li>Software which uses the Guacamole protocol of an older 1.x release should |
| still work.</li> |
| <li>Software which uses libguac from an older 1.x release should still work by |
| continuing to use the libguac from that release, as newer versions of |
| libguac may not be API/ABI compatible. In the case of third-party protocol |
| support plugins for guacd, this means that the guacd from that release must |
| also be used. Compatibility with respect to libguac is represented by the |
| <a href="https://en.wikipedia.org/wiki/Soname">soname</a>.</li> |
| <li>You should update to newer versions where applicable and when possible.</li> |
| </ul> |
| |
| <p>As of 1.5.4, the following changes have been made which affect compatibility |
| with past releases:</p> |
| |
| <h2 id="bulk-user-join-support-join_pending_handler">Bulk user join support (<code class="language-plaintext highlighter-rouge">join_pending_handler</code>)</h2> |
| |
| <p>When a user joins an established connection via Guacamole’s sharing |
| functionality, that user’s display state must be synchronised with the existing |
| display state of the connection such that future updates will have the expected |
| effects. Historically, this synchronization was done individually for each |
| joining user via a single handler called <code class="language-plaintext highlighter-rouge">join_handler</code>.</p> |
| |
| <p>As of 1.5.4, <code class="language-plaintext highlighter-rouge">join_pending_handler</code> has been added to allow <em>all</em> joining users |
| to be synchronized at the same time. If using this new bulk synchronization |
| support, the <code class="language-plaintext highlighter-rouge">join_handler</code> will be used primarily to parse user-specific |
| connection parameters, while the <code class="language-plaintext highlighter-rouge">join_pending_handler</code> will be used to |
| synchronize the display state to all users that are about to join. Using |
| <code class="language-plaintext highlighter-rouge">join_pending_handler</code> avoids having to re-encode the same display state |
| multiple times.</p> |
| |
| <ul> |
| <li class="bug">Race condition can cause the first user for a connection to miss updates (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1846">GUACAMOLE-1846</a>)</li> |
| </ul> |
| |
| <h2 id="memory-management-macros">Memory management macros</h2> |
| |
| <p>The latest version of libguac provides <a href="/doc/1.5.4/libguac/mem_8h.html">a series of <code class="language-plaintext highlighter-rouge">guac_mem_*()</code> macros</a> |
| for memory management and memory-related calculations that perform checked |
| arithmetic. These macros are intended to replace manual usage of <code class="language-plaintext highlighter-rouge">malloc()</code>, |
| <code class="language-plaintext highlighter-rouge">calloc()</code>, <code class="language-plaintext highlighter-rouge">realloc()</code>, and <code class="language-plaintext highlighter-rouge">free()</code> and should be preferred.</p> |
| |
| <p>The addition of these macros does not itself affect compatibility, however |
| established libguac functions that previously required returned memory to be |
| freed using <code class="language-plaintext highlighter-rouge">free()</code> now document that returned memory should be freed with |
| <code class="language-plaintext highlighter-rouge">guac_mem_free()</code>. Existing usage of <code class="language-plaintext highlighter-rouge">free()</code> instead of <code class="language-plaintext highlighter-rouge">guac_mem_free()</code> will |
| continue to work but should be migrated when possible.</p> |
| |
| <ul> |
| <li>Add libguac convenience functions for memory management (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1867">GUACAMOLE-1867</a>)</li> |
| </ul> |
| |
| |
| </div> |
| |
| </div> |
| |
| </div> |
| |
| <!-- Footer --> |
| <div id="footer"> |
| <div class="readable-content"> |
| |
| <!-- Copyrights --> |
| <p class="copyright"> |
| Copyright © 2024 <a href="http://www.apache.org/">The Apache |
| Software Foundation</a>, Licensed under the <a |
| href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, |
| Version 2.0</a>. |
| </p> |
| |
| <!-- Trademarks --> |
| <p class="trademarks"> |
| Apache Guacamole, Guacamole, Apache, the Apache feather logo, and the |
| Apache Guacamole project logo are trademarks of The Apache Software |
| Foundation. |
| </p> |
| |
| </div> |
| </div> |
| |
| |
| <!-- jQuery --> |
| <script src="/scripts/jquery.min.js" type="text/javascript"></script> |
| |
| <!-- Dropdown toggle --> |
| <script src="/scripts/dropdown.js" type="text/javascript"></script> |
| |
| </body> |
| </html> |