You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@guacamole.apache.org by mj...@apache.org on 2018/02/22 08:40:36 UTC
[2/3] guacamole-server git commit: GUACAMOLE-448: Add support for
configuring glyph caching.
GUACAMOLE-448: Add support for configuring glyph caching.
Project: http://git-wip-us.apache.org/repos/asf/guacamole-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/guacamole-server/commit/d239207f
Tree: http://git-wip-us.apache.org/repos/asf/guacamole-server/tree/d239207f
Diff: http://git-wip-us.apache.org/repos/asf/guacamole-server/diff/d239207f
Branch: refs/heads/master
Commit: d239207f0f32ac1534b0550947a83b8f649bf653
Parents: 66ffda2
Author: Nick Couchman <vn...@apache.org>
Authored: Tue Feb 20 15:35:50 2018 -0500
Committer: Nick Couchman <vn...@apache.org>
Committed: Tue Feb 20 15:35:50 2018 -0500
----------------------------------------------------------------------
src/protocols/rdp/rdp_settings.c | 21 ++++++++++++++++-----
src/protocols/rdp/rdp_settings.h | 6 ++++++
2 files changed, 22 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/guacamole-server/blob/d239207f/src/protocols/rdp/rdp_settings.c
----------------------------------------------------------------------
diff --git a/src/protocols/rdp/rdp_settings.c b/src/protocols/rdp/rdp_settings.c
index b7062dd..beaa499 100644
--- a/src/protocols/rdp/rdp_settings.c
+++ b/src/protocols/rdp/rdp_settings.c
@@ -74,6 +74,7 @@ const char* GUAC_RDP_CLIENT_ARGS[] = {
"enable-menu-animations",
"disable-bitmap-caching",
"disable-offscreen-caching",
+ "disable-glyph-caching",
"preconnection-id",
"preconnection-blob",
@@ -320,6 +321,12 @@ enum RDP_ARGS_IDX {
IDX_DISABLE_OFFSCREEN_CACHING,
/**
+ * "true" if glyph caching should be disabled, false if glyph caching should
+ * remain enabled.
+ */
+ IDX_DISABLE_GLYPH_CACHING,
+
+ /**
* The preconnection ID to send within the preconnection PDU when
* initiating an RDP connection, if any.
*/
@@ -694,6 +701,10 @@ 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);
+
/* Session color depth */
settings->color_depth =
guac_user_parse_args_int(user, GUAC_RDP_CLIENT_ARGS, argv,
@@ -1063,7 +1074,7 @@ static char* guac_rdp_strdup(const char* str) {
void guac_rdp_push_settings(guac_rdp_settings* guac_settings, freerdp* rdp) {
- BOOL bitmap_cache;
+ BOOL bitmap_cache = !guac_settings->disable_bitmap_caching;
rdpSettings* rdp_settings = rdp->settings;
/* Authentication */
@@ -1327,9 +1338,9 @@ void guac_rdp_push_settings(guac_rdp_settings* guac_settings, freerdp* rdp) {
/* Order support */
#ifdef LEGACY_RDPSETTINGS
- rdp_settings->bitmap_cache = !guac_settings->disable_bitmap_caching;
- bitmap_cache = !guac_settings->disable_bitmap_caching;
+ rdp_settings->bitmap_cache = bitmap_cache;
rdp_settings->offscreen_bitmap_cache = !guac_settings->disable_offscreen_caching;
+ rdp_settings->glyph_cache = !guac_settings->disable_glyph_caching;
rdp_settings->os_major_type = OSMAJORTYPE_UNSPECIFIED;
rdp_settings->os_minor_type = OSMINORTYPE_UNSPECIFIED;
rdp_settings->desktop_resize = TRUE;
@@ -1358,9 +1369,9 @@ void guac_rdp_push_settings(guac_rdp_settings* guac_settings, freerdp* rdp) {
rdp_settings->order_support[NEG_ELLIPSE_SC_INDEX] = FALSE;
rdp_settings->order_support[NEG_ELLIPSE_CB_INDEX] = FALSE;
#else
- rdp_settings->BitmapCacheEnabled = !guac_settings->disable_bitmap_caching;
- bitmap_cache = !guac_settings->disable_bitmap_caching;
+ rdp_settings->BitmapCacheEnabled = bitmap_cache;
rdp_settings->OffscreenSupportLevel = !guac_settings->disable_offscreen_caching;
+ rdp_settings->GlyphSupportLevel = !guac_settings->disable_glyph_caching ? GLYPH_SUPPORT_FULL : GLYPH_SUPPORT_NONE;
rdp_settings->OsMajorType = OSMAJORTYPE_UNSPECIFIED;
rdp_settings->OsMinorType = OSMINORTYPE_UNSPECIFIED;
rdp_settings->DesktopResize = TRUE;
http://git-wip-us.apache.org/repos/asf/guacamole-server/blob/d239207f/src/protocols/rdp/rdp_settings.h
----------------------------------------------------------------------
diff --git a/src/protocols/rdp/rdp_settings.h b/src/protocols/rdp/rdp_settings.h
index f0f9137..61ecb38 100644
--- a/src/protocols/rdp/rdp_settings.h
+++ b/src/protocols/rdp/rdp_settings.h
@@ -312,6 +312,12 @@ typedef struct guac_rdp_settings {
int disable_offscreen_caching;
/**
+ * Whether glyph caching should be disabled. By default it is enabled
+ * - this allows users to explicitly disable it.
+ */
+ int disable_glyph_caching;
+
+ /**
* The preconnection ID to send within the preconnection PDU when
* initiating an RDP connection, if any. If no preconnection ID is
* specified, this will be -1.