GUACAMOLE-40: Set RD gateway and load balancing settings for FreeRDP where applicable.
Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-server/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-server/commit/09099050 Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-server/tree/09099050 Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-server/diff/09099050 Branch: refs/heads/master Commit: 09099050cb2448a6b40ac3b17eab59f47c57d6a2 Parents: da8636e Author: Michael Jumper <[email protected]> Authored: Mon Apr 10 00:13:38 2017 -0700 Committer: Michael Jumper <[email protected]> Committed: Mon Apr 10 00:13:38 2017 -0700 ---------------------------------------------------------------------- src/protocols/rdp/rdp_settings.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-guacamole-server/blob/09099050/src/protocols/rdp/rdp_settings.c ---------------------------------------------------------------------- diff --git a/src/protocols/rdp/rdp_settings.c b/src/protocols/rdp/rdp_settings.c index 1ec34b9..998f0a2 100644 --- a/src/protocols/rdp/rdp_settings.c +++ b/src/protocols/rdp/rdp_settings.c @@ -1249,6 +1249,34 @@ void guac_rdp_push_settings(guac_rdp_settings* guac_settings, freerdp* rdp) { } #endif +#ifdef HAVE_FREERDP_GATEWAY_SUPPORT + /* Enable use of RD gateway if a gateway hostname is provided */ + if (guac_settings->gateway_hostname != NULL) { + + /* Enable RD gateway */ + rdp_settings->GatewayEnabled = TRUE; + + /* RD gateway connection details */ + rdp_settings->GatewayHostname = guac_rdp_strdup(guac_settings->gateway_hostname); + rdp_settings->GatewayPort = guac_settings->gateway_port; + + /* RD gateway credentials */ + rdp_settings->GatewayUseSameCredentials = FALSE; + rdp_settings->GatewayDomain = guac_rdp_strdup(guac_settings->gateway_domain); + rdp_settings->GatewayUsername = guac_rdp_strdup(guac_settings->gateway_username); + rdp_settings->GatewayPassword = guac_rdp_strdup(guac_settings->gateway_password); + + } +#endif + +#ifdef HAVE_FREERDP_LOAD_BALANCER_SUPPORT + /* Store load balance info (and calculate length) if provided */ + if (guac_settings->load_balance_info != NULL) { + rdp_settings->LoadBalanceInfo = (BYTE*) guac_rdp_strdup(guac_settings->load_balance_info); + rdp_settings->LoadBalanceInfoLength = strlen(guac_settings->load_balance_info); + } +#endif + /* Order support */ #ifdef LEGACY_RDPSETTINGS bitmap_cache = rdp_settings->bitmap_cache;
