From ecbb6fc6b3c5b6cb6314f775abe4f80f2debdb52 Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Tue, 22 Mar 2016 13:41:53 -0700 Subject: [PATCH] GUAC-1164: Do not load "drdynvc" plugin unless actually needed. --- src/protocols/rdp/rdp.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/protocols/rdp/rdp.c b/src/protocols/rdp/rdp.c index 4654fc87..0a4ebab8 100644 --- a/src/protocols/rdp/rdp.c +++ b/src/protocols/rdp/rdp.c @@ -225,15 +225,23 @@ BOOL rdp_freerdp_pre_connect(freerdp* instance) { (pChannelConnectedEventHandler) guac_rdp_channel_connected); #endif - /* Load virtual channel management plugin */ - if (freerdp_channels_load_plugin(channels, instance->settings, - "drdynvc", instance->settings)) - guac_client_log(client, GUAC_LOG_WARNING, - "Failed to load drdynvc plugin."); +#ifdef HAVE_FREERDP_DISPLAY_UPDATE_SUPPORT + /* Load required plugins if display update is enabled */ + if (settings->resize_method == GUAC_RESIZE_DISPLAY_UPDATE) { - /* Init display update plugin (if available and required) */ - if (settings->resize_method == GUAC_RESIZE_DISPLAY_UPDATE) - guac_rdp_disp_load_plugin(instance->context); + /* Load virtual channel management plugin (needed by display update) */ + if (freerdp_channels_load_plugin(channels, instance->settings, + "drdynvc", instance->settings)) + guac_client_log(client, GUAC_LOG_WARNING, + "Failed to load drdynvc plugin. Display update support " + "will be disabled."); + + /* Init display update plugin if "drdynvc" was loaded successfully */ + else + guac_rdp_disp_load_plugin(instance->context); + + } +#endif /* Load clipboard plugin */ if (freerdp_channels_load_plugin(channels, instance->settings,