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;

Reply via email to