GUACAMOLE-600: Merge RDP support for configuring the TCP timeout.

This commit is contained in:
Mike Jumper 2024-08-25 23:56:31 -07:00 committed by GitHub
commit e42def82e5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 22 additions and 0 deletions

View File

@ -56,6 +56,7 @@ const char fips_nla_mode_warning[] = (
const char* GUAC_RDP_CLIENT_ARGS[] = {
"hostname",
"port",
"server-timeout",
GUAC_RDP_ARGV_DOMAIN,
GUAC_RDP_ARGV_USERNAME,
GUAC_RDP_ARGV_PASSWORD,
@ -164,6 +165,11 @@ enum RDP_ARGS_IDX {
*/
IDX_PORT,
/**
* The amount of time to wait for the server to respond, in seconds.
*/
IDX_SERVER_TIMEOUT,
/**
* The domain of the user logging in.
*/
@ -816,6 +822,11 @@ guac_rdp_settings* guac_rdp_parse_args(guac_user* user,
guac_user_parse_args_int(user, GUAC_RDP_CLIENT_ARGS, argv, IDX_PORT,
settings->security_mode == GUAC_SECURITY_VMCONNECT ? RDP_DEFAULT_VMCONNECT_PORT : RDP_DEFAULT_PORT);
/* Look for timeout settings and parse or set defaults. */
settings->server_timeout =
guac_user_parse_args_int(user, GUAC_RDP_CLIENT_ARGS, argv,
IDX_SERVER_TIMEOUT, RDP_DEFAULT_SERVER_TIMEOUT);
guac_user_log(user, GUAC_LOG_DEBUG,
"User resolution is %ix%i at %i DPI",
user->info.optimal_width,
@ -1721,6 +1732,7 @@ void guac_rdp_push_settings(guac_client* client,
/* Connection */
rdp_settings->ServerHostname = guac_strdup(guac_settings->hostname);
rdp_settings->ServerPort = guac_settings->port;
rdp_settings->TcpAckTimeout = guac_settings->server_timeout * 1000;
/* Session */
rdp_settings->ColorDepth = guac_settings->color_depth;

View File

@ -33,6 +33,11 @@
*/
#define RDP_CLIENT_HOSTNAME_SIZE 32
/**
* The default server response timeout, in seconds.
*/
#define RDP_DEFAULT_SERVER_TIMEOUT 10
/**
* The default RDP port.
*/
@ -156,6 +161,11 @@ typedef struct guac_rdp_settings {
*/
int port;
/**
* The timeout, in seconds, to wait for the remote host to respond.
*/
int server_timeout;
/**
* The domain of the user logging in.
*/