[core,settings] add new keys for gateway

Add missing settings:
* FreeRDP_GatewayHttpReferer
* FreeRDP_GatewayHttpUserAgent
* FreeRDP_GatewayHttpMsUserAgent
This commit is contained in:
akallabeth
2025-10-27 12:17:02 +01:00
parent 0dd6d838bb
commit c8698a1b9c
5 changed files with 69 additions and 4 deletions

View File

@@ -512,7 +512,16 @@ struct rdp_settings
SETTINGS_DEPRECATED(ALIGN64 char* GatewayAvdAccessAadFormat); /** 2023
* @since version 3.16.0
*/
UINT64 padding2112[2112 - 2024]; /* 2024 */
SETTINGS_DEPRECATED(ALIGN64 char* GatewayHttpReferer); /** 2024
* @since version 3.18.0
*/
SETTINGS_DEPRECATED(ALIGN64 char* GatewayHttpUserAgent); /** 2025
* @since version 3.18.0
*/
SETTINGS_DEPRECATED(ALIGN64 char* GatewayHttpMsUserAgent); /** 2026
* @since version 3.18.0
*/
UINT64 padding2112[2112 - 2027]; /* 2027 */
/**
* RemoteApp

View File

@@ -2373,7 +2373,8 @@ BOOL freerdp_settings_set_uint32(WINPR_ATTR_UNUSED rdpSettings* settings,
break;
case FreeRDP_ReceivedCapabilitiesSize:
return freerdp_capability_buffer_resize(settings, cnv.c, FALSE);
settings->ReceivedCapabilitiesSize = cnv.c;
break;
case FreeRDP_RedirectedSessionId:
settings->RedirectedSessionId = cnv.c;
@@ -2500,7 +2501,8 @@ BOOL freerdp_settings_set_uint32(WINPR_ATTR_UNUSED rdpSettings* settings,
break;
case FreeRDP_TargetNetAddressCount:
return freerdp_target_net_addresses_resize(settings, cnv.c);
settings->TargetNetAddressCount = cnv.c;
break;
case FreeRDP_TcpAckTimeout:
settings->TcpAckTimeout = cnv.c;
@@ -2863,6 +2865,15 @@ const char* freerdp_settings_get_string(WINPR_ATTR_UNUSED const rdpSettings* set
case FreeRDP_GatewayHttpExtAuthBearer:
return settings->GatewayHttpExtAuthBearer;
case FreeRDP_GatewayHttpMsUserAgent:
return settings->GatewayHttpMsUserAgent;
case FreeRDP_GatewayHttpReferer:
return settings->GatewayHttpReferer;
case FreeRDP_GatewayHttpUserAgent:
return settings->GatewayHttpUserAgent;
case FreeRDP_GatewayPassword:
return settings->GatewayPassword;
@@ -3187,6 +3198,15 @@ char* freerdp_settings_get_string_writable(rdpSettings* settings, FreeRDP_Settin
case FreeRDP_GatewayHttpExtAuthBearer:
return settings->GatewayHttpExtAuthBearer;
case FreeRDP_GatewayHttpMsUserAgent:
return settings->GatewayHttpMsUserAgent;
case FreeRDP_GatewayHttpReferer:
return settings->GatewayHttpReferer;
case FreeRDP_GatewayHttpUserAgent:
return settings->GatewayHttpUserAgent;
case FreeRDP_GatewayPassword:
return settings->GatewayPassword;
@@ -3522,6 +3542,15 @@ BOOL freerdp_settings_set_string_(WINPR_ATTR_UNUSED rdpSettings* settings,
case FreeRDP_GatewayHttpExtAuthBearer:
return update_string_(&settings->GatewayHttpExtAuthBearer, cnv.c, len);
case FreeRDP_GatewayHttpMsUserAgent:
return update_string_(&settings->GatewayHttpMsUserAgent, cnv.c, len);
case FreeRDP_GatewayHttpReferer:
return update_string_(&settings->GatewayHttpReferer, cnv.c, len);
case FreeRDP_GatewayHttpUserAgent:
return update_string_(&settings->GatewayHttpUserAgent, cnv.c, len);
case FreeRDP_GatewayPassword:
return update_string_(&settings->GatewayPassword, cnv.c, len);
@@ -3877,6 +3906,15 @@ BOOL freerdp_settings_set_string_copy_(WINPR_ATTR_UNUSED rdpSettings* settings,
case FreeRDP_GatewayHttpExtAuthBearer:
return update_string_copy_(&settings->GatewayHttpExtAuthBearer, cnv.cc, len, cleanup);
case FreeRDP_GatewayHttpMsUserAgent:
return update_string_copy_(&settings->GatewayHttpMsUserAgent, cnv.cc, len, cleanup);
case FreeRDP_GatewayHttpReferer:
return update_string_copy_(&settings->GatewayHttpReferer, cnv.cc, len, cleanup);
case FreeRDP_GatewayHttpUserAgent:
return update_string_copy_(&settings->GatewayHttpUserAgent, cnv.cc, len, cleanup);
case FreeRDP_GatewayPassword:
return update_string_copy_(&settings->GatewayPassword, cnv.cc, len, cleanup);

View File

@@ -513,6 +513,10 @@ static const struct settings_str_entry settings_map[] = {
{ FreeRDP_GatewayHostname, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_GatewayHostname" },
{ FreeRDP_GatewayHttpExtAuthBearer, FREERDP_SETTINGS_TYPE_STRING,
"FreeRDP_GatewayHttpExtAuthBearer" },
{ FreeRDP_GatewayHttpMsUserAgent, FREERDP_SETTINGS_TYPE_STRING,
"FreeRDP_GatewayHttpMsUserAgent" },
{ FreeRDP_GatewayHttpReferer, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_GatewayHttpReferer" },
{ FreeRDP_GatewayHttpUserAgent, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_GatewayHttpUserAgent" },
{ FreeRDP_GatewayPassword, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_GatewayPassword" },
{ FreeRDP_GatewayUrl, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_GatewayUrl" },
{ FreeRDP_GatewayUsername, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_GatewayUsername" },

View File

@@ -34,6 +34,7 @@
#include <winpr/registry.h>
#include <winpr/wtsapi.h>
#include <freerdp/version.h>
#include <freerdp/settings.h>
#include <freerdp/utils/helpers.h>
#include <freerdp/build-config.h>
@@ -770,6 +771,15 @@ rdpSettings* freerdp_settings_new(DWORD flags)
if (!server && !remote)
{
if (!freerdp_settings_set_string(settings, FreeRDP_GatewayHttpUserAgent,
FREERDP_USER_AGENT))
goto out_fail;
if (!freerdp_settings_set_string(settings, FreeRDP_GatewayHttpMsUserAgent,
FREERDP_USER_AGENT))
goto out_fail;
if (!freerdp_settings_set_string(settings, FreeRDP_GatewayHttpReferer, ""))
goto out_fail;
if (!freerdp_settings_set_string(settings, FreeRDP_GatewayAvdAccessTokenFormat,
"ms-appx-web%%3a%%2f%%2fMicrosoft.AAD.BrokerPlugin%%2f%s"))
goto out_fail;
@@ -777,7 +787,8 @@ rdpSettings* freerdp_settings_new(DWORD flags)
"https%%3A%%2F%%2F%s%%2F%s%%2Foauth2%%2Fnativeclient"))
goto out_fail;
if (!freerdp_settings_set_string(settings, FreeRDP_GatewayAvdScope,
"https%3A%2F%2Fwww.wvd.microsoft.com%2F.default"))
"https%3A%2F%2Fwww.wvd.microsoft.com%2F.default%20openid%"
"20profile%20offline_access"))
goto out_fail;
if (!freerdp_settings_set_string(settings, FreeRDP_GatewayAvdClientID,

View File

@@ -405,6 +405,9 @@ static const size_t string_list_indices[] = {
FreeRDP_GatewayDomain,
FreeRDP_GatewayHostname,
FreeRDP_GatewayHttpExtAuthBearer,
FreeRDP_GatewayHttpMsUserAgent,
FreeRDP_GatewayHttpReferer,
FreeRDP_GatewayHttpUserAgent,
FreeRDP_GatewayPassword,
FreeRDP_GatewayUrl,
FreeRDP_GatewayUsername,