From 9dc793b0e563797ab78955ca7c3d31abcc559a6d Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Sat, 9 Jan 2021 17:49:29 -0800 Subject: [PATCH] GUACAMOLE-1191: Always disable the glyph cache, as FreeRDP no longer considers the feature to be stable. --- src/protocols/rdp/settings.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/protocols/rdp/settings.c b/src/protocols/rdp/settings.c index dd8a96fb..e12e8c12 100644 --- a/src/protocols/rdp/settings.c +++ b/src/protocols/rdp/settings.c @@ -850,9 +850,24 @@ guac_rdp_settings* guac_rdp_parse_args(guac_user* user, guac_user_parse_args_boolean(user, GUAC_RDP_CLIENT_ARGS, argv, IDX_DISABLE_OFFSCREEN_CACHING, 0); - settings->disable_glyph_caching = - guac_user_parse_args_boolean(user, GUAC_RDP_CLIENT_ARGS, argv, - IDX_DISABLE_GLYPH_CACHING, 0); + /* FreeRDP does not consider the glyph cache implementation to be stable as + * of 2.0.0, and it MUST NOT be used. Usage of the glyph cache results in + * unexpected disconnects when using older versions of Windows and recent + * versions of FreeRDP. See: https://issues.apache.org/jira/browse/GUACAMOLE-1191 */ + settings->disable_glyph_caching = 1; + + /* In case the user expects glyph caching to be enabled, either explicitly + * or by default, warn that this will not be the case as the glyph cache + * is not considered stable. */ + if (!guac_user_parse_args_boolean(user, GUAC_RDP_CLIENT_ARGS, argv, + IDX_DISABLE_GLYPH_CACHING, 0)) { + guac_user_log(user, GUAC_LOG_DEBUG, "Glyph caching is currently " + "universally disabled, regardless of the value of the \"%s\" " + "parameter, as glyph caching support is not considered stable " + "by FreeRDP as of the FreeRDP 2.0.0 release. See: " + "https://issues.apache.org/jira/browse/GUACAMOLE-1191", + GUAC_RDP_CLIENT_ARGS[IDX_DISABLE_GLYPH_CACHING]); + } /* Session color depth */ settings->color_depth =