FreeRDP/libfreerdp/common/settings_getters.c
akallabeth 724c6f8192
Proxy cleanups (#7568)
* Fixed C++ issues with proxy context

* Added freerdp_settings_get_string_writable

* Define WITH_PROXY_EMULATE_SMARTCARD in config.h
2022-01-20 11:12:36 +01:00

3217 lines
73 KiB
C

/* Generated by */
#include <winpr/assert.h>
#include <freerdp/settings.h>
#include <freerdp/log.h>
#include "../core/settings.h"
#define TAG FREERDP_TAG("common.settings")
static BOOL update_string(char** current, const char* next, size_t next_len, BOOL cleanup)
{
if (cleanup)
{
if (*current)
memset(*current, 0, strlen(*current));
free(*current);
}
if (!next && (next_len > 0))
{
*current = calloc(next_len, 1);
return (*current != NULL);
}
*current = (next ? strndup(next, next_len) : NULL);
return !next || (*current != NULL);
}
BOOL freerdp_settings_get_bool(const rdpSettings* settings, size_t id)
{
WINPR_ASSERT(settings);
switch (id)
{
case FreeRDP_AllowCacheWaitingList:
return settings->AllowCacheWaitingList;
case FreeRDP_AllowDesktopComposition:
return settings->AllowDesktopComposition;
case FreeRDP_AllowFontSmoothing:
return settings->AllowFontSmoothing;
case FreeRDP_AllowUnanouncedOrdersFromServer:
return settings->AllowUnanouncedOrdersFromServer;
case FreeRDP_AltSecFrameMarkerSupport:
return settings->AltSecFrameMarkerSupport;
case FreeRDP_AsyncChannels:
return settings->AsyncChannels;
case FreeRDP_AsyncInput:
return settings->AsyncInput;
case FreeRDP_AsyncUpdate:
return settings->AsyncUpdate;
case FreeRDP_AudioCapture:
return settings->AudioCapture;
case FreeRDP_AudioPlayback:
return settings->AudioPlayback;
case FreeRDP_Authentication:
return settings->Authentication;
case FreeRDP_AuthenticationOnly:
return settings->AuthenticationOnly;
case FreeRDP_AutoAcceptCertificate:
return settings->AutoAcceptCertificate;
case FreeRDP_AutoDenyCertificate:
return settings->AutoDenyCertificate;
case FreeRDP_AutoLogonEnabled:
return settings->AutoLogonEnabled;
case FreeRDP_AutoReconnectionEnabled:
return settings->AutoReconnectionEnabled;
case FreeRDP_BitmapCacheEnabled:
return settings->BitmapCacheEnabled;
case FreeRDP_BitmapCachePersistEnabled:
return settings->BitmapCachePersistEnabled;
case FreeRDP_BitmapCacheV3Enabled:
return settings->BitmapCacheV3Enabled;
case FreeRDP_BitmapCompressionDisabled:
return settings->BitmapCompressionDisabled;
case FreeRDP_CertificateCallbackPreferPEM:
return settings->CertificateCallbackPreferPEM;
case FreeRDP_CertificateUseKnownHosts:
return settings->CertificateUseKnownHosts;
case FreeRDP_ColorPointerFlag:
return settings->ColorPointerFlag;
case FreeRDP_CompressionEnabled:
return settings->CompressionEnabled;
case FreeRDP_ConsoleSession:
return settings->ConsoleSession;
case FreeRDP_CredentialsFromStdin:
return settings->CredentialsFromStdin;
case FreeRDP_DeactivateClientDecoding:
return settings->DeactivateClientDecoding;
case FreeRDP_Decorations:
return settings->Decorations;
case FreeRDP_DesktopResize:
return settings->DesktopResize;
case FreeRDP_DeviceRedirection:
return settings->DeviceRedirection;
case FreeRDP_DisableCredentialsDelegation:
return settings->DisableCredentialsDelegation;
case FreeRDP_DisableCtrlAltDel:
return settings->DisableCtrlAltDel;
case FreeRDP_DisableCursorBlinking:
return settings->DisableCursorBlinking;
case FreeRDP_DisableCursorShadow:
return settings->DisableCursorShadow;
case FreeRDP_DisableFullWindowDrag:
return settings->DisableFullWindowDrag;
case FreeRDP_DisableMenuAnims:
return settings->DisableMenuAnims;
case FreeRDP_DisableRemoteAppCapsCheck:
return settings->DisableRemoteAppCapsCheck;
case FreeRDP_DisableThemes:
return settings->DisableThemes;
case FreeRDP_DisableWallpaper:
return settings->DisableWallpaper;
case FreeRDP_DrawAllowColorSubsampling:
return settings->DrawAllowColorSubsampling;
case FreeRDP_DrawAllowDynamicColorFidelity:
return settings->DrawAllowDynamicColorFidelity;
case FreeRDP_DrawAllowSkipAlpha:
return settings->DrawAllowSkipAlpha;
case FreeRDP_DrawGdiPlusCacheEnabled:
return settings->DrawGdiPlusCacheEnabled;
case FreeRDP_DrawGdiPlusEnabled:
return settings->DrawGdiPlusEnabled;
case FreeRDP_DrawNineGridEnabled:
return settings->DrawNineGridEnabled;
case FreeRDP_DumpRemoteFx:
return settings->DumpRemoteFx;
case FreeRDP_DynamicDaylightTimeDisabled:
return settings->DynamicDaylightTimeDisabled;
case FreeRDP_DynamicResolutionUpdate:
return settings->DynamicResolutionUpdate;
case FreeRDP_EmbeddedWindow:
return settings->EmbeddedWindow;
case FreeRDP_EnableWindowsKey:
return settings->EnableWindowsKey;
case FreeRDP_EncomspVirtualChannel:
return settings->EncomspVirtualChannel;
case FreeRDP_ExtSecurity:
return settings->ExtSecurity;
case FreeRDP_ExternalCertificateManagement:
return settings->ExternalCertificateManagement;
case FreeRDP_FIPSMode:
return settings->FIPSMode;
case FreeRDP_FastPathInput:
return settings->FastPathInput;
case FreeRDP_FastPathOutput:
return settings->FastPathOutput;
case FreeRDP_ForceEncryptedCsPdu:
return settings->ForceEncryptedCsPdu;
case FreeRDP_ForceMultimon:
return settings->ForceMultimon;
case FreeRDP_FrameMarkerCommandEnabled:
return settings->FrameMarkerCommandEnabled;
case FreeRDP_Fullscreen:
return settings->Fullscreen;
case FreeRDP_GatewayBypassLocal:
return settings->GatewayBypassLocal;
case FreeRDP_GatewayEnabled:
return settings->GatewayEnabled;
case FreeRDP_GatewayHttpTransport:
return settings->GatewayHttpTransport;
case FreeRDP_GatewayHttpUseWebsockets:
return settings->GatewayHttpUseWebsockets;
case FreeRDP_GatewayRpcTransport:
return settings->GatewayRpcTransport;
case FreeRDP_GatewayUdpTransport:
return settings->GatewayUdpTransport;
case FreeRDP_GatewayUseSameCredentials:
return settings->GatewayUseSameCredentials;
case FreeRDP_GfxAVC444:
return settings->GfxAVC444;
case FreeRDP_GfxAVC444v2:
return settings->GfxAVC444v2;
case FreeRDP_GfxH264:
return settings->GfxH264;
case FreeRDP_GfxPlanar:
return settings->GfxPlanar;
case FreeRDP_GfxProgressive:
return settings->GfxProgressive;
case FreeRDP_GfxProgressiveV2:
return settings->GfxProgressiveV2;
case FreeRDP_GfxSendQoeAck:
return settings->GfxSendQoeAck;
case FreeRDP_GfxSmallCache:
return settings->GfxSmallCache;
case FreeRDP_GfxThinClient:
return settings->GfxThinClient;
case FreeRDP_GrabKeyboard:
return settings->GrabKeyboard;
case FreeRDP_GrabMouse:
return settings->GrabMouse;
case FreeRDP_HasExtendedMouseEvent:
return settings->HasExtendedMouseEvent;
case FreeRDP_HasHorizontalWheel:
return settings->HasHorizontalWheel;
case FreeRDP_HasMonitorAttributes:
return settings->HasMonitorAttributes;
case FreeRDP_HiDefRemoteApp:
return settings->HiDefRemoteApp;
case FreeRDP_IPv6Enabled:
return settings->IPv6Enabled;
case FreeRDP_IgnoreCertificate:
return settings->IgnoreCertificate;
case FreeRDP_JpegCodec:
return settings->JpegCodec;
case FreeRDP_ListMonitors:
return settings->ListMonitors;
case FreeRDP_LocalConnection:
return settings->LocalConnection;
case FreeRDP_LogonErrors:
return settings->LogonErrors;
case FreeRDP_LogonNotify:
return settings->LogonNotify;
case FreeRDP_LongCredentialsSupported:
return settings->LongCredentialsSupported;
case FreeRDP_LyncRdpMode:
return settings->LyncRdpMode;
case FreeRDP_MaximizeShell:
return settings->MaximizeShell;
case FreeRDP_MouseAttached:
return settings->MouseAttached;
case FreeRDP_MouseHasWheel:
return settings->MouseHasWheel;
case FreeRDP_MouseMotion:
return settings->MouseMotion;
case FreeRDP_MstscCookieMode:
return settings->MstscCookieMode;
case FreeRDP_MultiTouchGestures:
return settings->MultiTouchGestures;
case FreeRDP_MultiTouchInput:
return settings->MultiTouchInput;
case FreeRDP_NSCodec:
return settings->NSCodec;
case FreeRDP_NSCodecAllowDynamicColorFidelity:
return settings->NSCodecAllowDynamicColorFidelity;
case FreeRDP_NSCodecAllowSubsampling:
return settings->NSCodecAllowSubsampling;
case FreeRDP_NegotiateSecurityLayer:
return settings->NegotiateSecurityLayer;
case FreeRDP_NetworkAutoDetect:
return settings->NetworkAutoDetect;
case FreeRDP_NlaSecurity:
return settings->NlaSecurity;
case FreeRDP_NoBitmapCompressionHeader:
return settings->NoBitmapCompressionHeader;
case FreeRDP_OldLicenseBehaviour:
return settings->OldLicenseBehaviour;
case FreeRDP_PasswordIsSmartcardPin:
return settings->PasswordIsSmartcardPin;
case FreeRDP_PercentScreenUseHeight:
return settings->PercentScreenUseHeight;
case FreeRDP_PercentScreenUseWidth:
return settings->PercentScreenUseWidth;
case FreeRDP_PlayRemoteFx:
return settings->PlayRemoteFx;
case FreeRDP_PreferIPv6OverIPv4:
return settings->PreferIPv6OverIPv4;
case FreeRDP_PrintReconnectCookie:
return settings->PrintReconnectCookie;
case FreeRDP_PromptForCredentials:
return settings->PromptForCredentials;
case FreeRDP_RdpSecurity:
return settings->RdpSecurity;
case FreeRDP_RedirectClipboard:
return settings->RedirectClipboard;
case FreeRDP_RedirectDrives:
return settings->RedirectDrives;
case FreeRDP_RedirectHomeDrive:
return settings->RedirectHomeDrive;
case FreeRDP_RedirectParallelPorts:
return settings->RedirectParallelPorts;
case FreeRDP_RedirectPrinters:
return settings->RedirectPrinters;
case FreeRDP_RedirectSerialPorts:
return settings->RedirectSerialPorts;
case FreeRDP_RedirectSmartCards:
return settings->RedirectSmartCards;
case FreeRDP_RefreshRect:
return settings->RefreshRect;
case FreeRDP_RemdeskVirtualChannel:
return settings->RemdeskVirtualChannel;
case FreeRDP_RemoteAppLanguageBarSupported:
return settings->RemoteAppLanguageBarSupported;
case FreeRDP_RemoteApplicationMode:
return settings->RemoteApplicationMode;
case FreeRDP_RemoteAssistanceMode:
return settings->RemoteAssistanceMode;
case FreeRDP_RemoteAssistanceRequestControl:
return settings->RemoteAssistanceRequestControl;
case FreeRDP_RemoteConsoleAudio:
return settings->RemoteConsoleAudio;
case FreeRDP_RemoteFxCodec:
return settings->RemoteFxCodec;
case FreeRDP_RemoteFxImageCodec:
return settings->RemoteFxImageCodec;
case FreeRDP_RemoteFxOnly:
return settings->RemoteFxOnly;
case FreeRDP_RestrictedAdminModeRequired:
return settings->RestrictedAdminModeRequired;
case FreeRDP_SaltedChecksum:
return settings->SaltedChecksum;
case FreeRDP_SendPreconnectionPdu:
return settings->SendPreconnectionPdu;
case FreeRDP_ServerMode:
return settings->ServerMode;
case FreeRDP_SmartSizing:
return settings->SmartSizing;
case FreeRDP_SmartcardLogon:
return settings->SmartcardLogon;
case FreeRDP_SoftwareGdi:
return settings->SoftwareGdi;
case FreeRDP_SoundBeepsEnabled:
return settings->SoundBeepsEnabled;
case FreeRDP_SpanMonitors:
return settings->SpanMonitors;
case FreeRDP_SupportAsymetricKeys:
return settings->SupportAsymetricKeys;
case FreeRDP_SupportDisplayControl:
return settings->SupportDisplayControl;
case FreeRDP_SupportDynamicChannels:
return settings->SupportDynamicChannels;
case FreeRDP_SupportDynamicTimeZone:
return settings->SupportDynamicTimeZone;
case FreeRDP_SupportEchoChannel:
return settings->SupportEchoChannel;
case FreeRDP_SupportErrorInfoPdu:
return settings->SupportErrorInfoPdu;
case FreeRDP_SupportGeometryTracking:
return settings->SupportGeometryTracking;
case FreeRDP_SupportGraphicsPipeline:
return settings->SupportGraphicsPipeline;
case FreeRDP_SupportHeartbeatPdu:
return settings->SupportHeartbeatPdu;
case FreeRDP_SupportMonitorLayoutPdu:
return settings->SupportMonitorLayoutPdu;
case FreeRDP_SupportMultitransport:
return settings->SupportMultitransport;
case FreeRDP_SupportSSHAgentChannel:
return settings->SupportSSHAgentChannel;
case FreeRDP_SupportStatusInfoPdu:
return settings->SupportStatusInfoPdu;
case FreeRDP_SupportVideoOptimized:
return settings->SupportVideoOptimized;
case FreeRDP_SuppressOutput:
return settings->SuppressOutput;
case FreeRDP_SurfaceCommandsEnabled:
return settings->SurfaceCommandsEnabled;
case FreeRDP_SurfaceFrameMarkerEnabled:
return settings->SurfaceFrameMarkerEnabled;
case FreeRDP_SuspendInput:
return settings->SuspendInput;
case FreeRDP_TcpKeepAlive:
return settings->TcpKeepAlive;
case FreeRDP_TlsSecurity:
return settings->TlsSecurity;
case FreeRDP_ToggleFullscreen:
return settings->ToggleFullscreen;
case FreeRDP_TransportDump:
return settings->TransportDump;
case FreeRDP_TransportDumpReplay:
return settings->TransportDumpReplay;
case FreeRDP_UnicodeInput:
return settings->UnicodeInput;
case FreeRDP_UnmapButtons:
return settings->UnmapButtons;
case FreeRDP_UseMultimon:
return settings->UseMultimon;
case FreeRDP_UseRdpSecurityLayer:
return settings->UseRdpSecurityLayer;
case FreeRDP_UsingSavedCredentials:
return settings->UsingSavedCredentials;
case FreeRDP_VideoDisable:
return settings->VideoDisable;
case FreeRDP_VmConnectMode:
return settings->VmConnectMode;
case FreeRDP_WaitForOutputBufferFlush:
return settings->WaitForOutputBufferFlush;
case FreeRDP_Workarea:
return settings->Workarea;
default:
WLog_ERR(TAG, "[%s] Invalid key index %" PRIuz, __FUNCTION__, id);
return FALSE;
}
}
BOOL freerdp_settings_set_bool(rdpSettings* settings, size_t id, BOOL val)
{
union
{
void* v;
const void* cv;
BOOL c;
const BOOL cc;
} cnv;
WINPR_ASSERT(settings);
cnv.c = val;
switch (id)
{
case FreeRDP_AllowCacheWaitingList:
settings->AllowCacheWaitingList = cnv.c;
break;
case FreeRDP_AllowDesktopComposition:
settings->AllowDesktopComposition = cnv.c;
break;
case FreeRDP_AllowFontSmoothing:
settings->AllowFontSmoothing = cnv.c;
break;
case FreeRDP_AllowUnanouncedOrdersFromServer:
settings->AllowUnanouncedOrdersFromServer = cnv.c;
break;
case FreeRDP_AltSecFrameMarkerSupport:
settings->AltSecFrameMarkerSupport = cnv.c;
break;
case FreeRDP_AsyncChannels:
settings->AsyncChannels = cnv.c;
break;
case FreeRDP_AsyncInput:
settings->AsyncInput = cnv.c;
break;
case FreeRDP_AsyncUpdate:
settings->AsyncUpdate = cnv.c;
break;
case FreeRDP_AudioCapture:
settings->AudioCapture = cnv.c;
break;
case FreeRDP_AudioPlayback:
settings->AudioPlayback = cnv.c;
break;
case FreeRDP_Authentication:
settings->Authentication = cnv.c;
break;
case FreeRDP_AuthenticationOnly:
settings->AuthenticationOnly = cnv.c;
break;
case FreeRDP_AutoAcceptCertificate:
settings->AutoAcceptCertificate = cnv.c;
break;
case FreeRDP_AutoDenyCertificate:
settings->AutoDenyCertificate = cnv.c;
break;
case FreeRDP_AutoLogonEnabled:
settings->AutoLogonEnabled = cnv.c;
break;
case FreeRDP_AutoReconnectionEnabled:
settings->AutoReconnectionEnabled = cnv.c;
break;
case FreeRDP_BitmapCacheEnabled:
settings->BitmapCacheEnabled = cnv.c;
break;
case FreeRDP_BitmapCachePersistEnabled:
settings->BitmapCachePersistEnabled = cnv.c;
break;
case FreeRDP_BitmapCacheV3Enabled:
settings->BitmapCacheV3Enabled = cnv.c;
break;
case FreeRDP_BitmapCompressionDisabled:
settings->BitmapCompressionDisabled = cnv.c;
break;
case FreeRDP_CertificateCallbackPreferPEM:
settings->CertificateCallbackPreferPEM = cnv.c;
break;
case FreeRDP_CertificateUseKnownHosts:
settings->CertificateUseKnownHosts = cnv.c;
break;
case FreeRDP_ColorPointerFlag:
settings->ColorPointerFlag = cnv.c;
break;
case FreeRDP_CompressionEnabled:
settings->CompressionEnabled = cnv.c;
break;
case FreeRDP_ConsoleSession:
settings->ConsoleSession = cnv.c;
break;
case FreeRDP_CredentialsFromStdin:
settings->CredentialsFromStdin = cnv.c;
break;
case FreeRDP_DeactivateClientDecoding:
settings->DeactivateClientDecoding = cnv.c;
break;
case FreeRDP_Decorations:
settings->Decorations = cnv.c;
break;
case FreeRDP_DesktopResize:
settings->DesktopResize = cnv.c;
break;
case FreeRDP_DeviceRedirection:
settings->DeviceRedirection = cnv.c;
break;
case FreeRDP_DisableCredentialsDelegation:
settings->DisableCredentialsDelegation = cnv.c;
break;
case FreeRDP_DisableCtrlAltDel:
settings->DisableCtrlAltDel = cnv.c;
break;
case FreeRDP_DisableCursorBlinking:
settings->DisableCursorBlinking = cnv.c;
break;
case FreeRDP_DisableCursorShadow:
settings->DisableCursorShadow = cnv.c;
break;
case FreeRDP_DisableFullWindowDrag:
settings->DisableFullWindowDrag = cnv.c;
break;
case FreeRDP_DisableMenuAnims:
settings->DisableMenuAnims = cnv.c;
break;
case FreeRDP_DisableRemoteAppCapsCheck:
settings->DisableRemoteAppCapsCheck = cnv.c;
break;
case FreeRDP_DisableThemes:
settings->DisableThemes = cnv.c;
break;
case FreeRDP_DisableWallpaper:
settings->DisableWallpaper = cnv.c;
break;
case FreeRDP_DrawAllowColorSubsampling:
settings->DrawAllowColorSubsampling = cnv.c;
break;
case FreeRDP_DrawAllowDynamicColorFidelity:
settings->DrawAllowDynamicColorFidelity = cnv.c;
break;
case FreeRDP_DrawAllowSkipAlpha:
settings->DrawAllowSkipAlpha = cnv.c;
break;
case FreeRDP_DrawGdiPlusCacheEnabled:
settings->DrawGdiPlusCacheEnabled = cnv.c;
break;
case FreeRDP_DrawGdiPlusEnabled:
settings->DrawGdiPlusEnabled = cnv.c;
break;
case FreeRDP_DrawNineGridEnabled:
settings->DrawNineGridEnabled = cnv.c;
break;
case FreeRDP_DumpRemoteFx:
settings->DumpRemoteFx = cnv.c;
break;
case FreeRDP_DynamicDaylightTimeDisabled:
settings->DynamicDaylightTimeDisabled = cnv.c;
break;
case FreeRDP_DynamicResolutionUpdate:
settings->DynamicResolutionUpdate = cnv.c;
break;
case FreeRDP_EmbeddedWindow:
settings->EmbeddedWindow = cnv.c;
break;
case FreeRDP_EnableWindowsKey:
settings->EnableWindowsKey = cnv.c;
break;
case FreeRDP_EncomspVirtualChannel:
settings->EncomspVirtualChannel = cnv.c;
break;
case FreeRDP_ExtSecurity:
settings->ExtSecurity = cnv.c;
break;
case FreeRDP_ExternalCertificateManagement:
settings->ExternalCertificateManagement = cnv.c;
break;
case FreeRDP_FIPSMode:
settings->FIPSMode = cnv.c;
break;
case FreeRDP_FastPathInput:
settings->FastPathInput = cnv.c;
break;
case FreeRDP_FastPathOutput:
settings->FastPathOutput = cnv.c;
break;
case FreeRDP_ForceEncryptedCsPdu:
settings->ForceEncryptedCsPdu = cnv.c;
break;
case FreeRDP_ForceMultimon:
settings->ForceMultimon = cnv.c;
break;
case FreeRDP_FrameMarkerCommandEnabled:
settings->FrameMarkerCommandEnabled = cnv.c;
break;
case FreeRDP_Fullscreen:
settings->Fullscreen = cnv.c;
break;
case FreeRDP_GatewayBypassLocal:
settings->GatewayBypassLocal = cnv.c;
break;
case FreeRDP_GatewayEnabled:
settings->GatewayEnabled = cnv.c;
break;
case FreeRDP_GatewayHttpTransport:
settings->GatewayHttpTransport = cnv.c;
break;
case FreeRDP_GatewayHttpUseWebsockets:
settings->GatewayHttpUseWebsockets = cnv.c;
break;
case FreeRDP_GatewayRpcTransport:
settings->GatewayRpcTransport = cnv.c;
break;
case FreeRDP_GatewayUdpTransport:
settings->GatewayUdpTransport = cnv.c;
break;
case FreeRDP_GatewayUseSameCredentials:
settings->GatewayUseSameCredentials = cnv.c;
break;
case FreeRDP_GfxAVC444:
settings->GfxAVC444 = cnv.c;
break;
case FreeRDP_GfxAVC444v2:
settings->GfxAVC444v2 = cnv.c;
break;
case FreeRDP_GfxH264:
settings->GfxH264 = cnv.c;
break;
case FreeRDP_GfxPlanar:
settings->GfxPlanar = cnv.c;
break;
case FreeRDP_GfxProgressive:
settings->GfxProgressive = cnv.c;
break;
case FreeRDP_GfxProgressiveV2:
settings->GfxProgressiveV2 = cnv.c;
break;
case FreeRDP_GfxSendQoeAck:
settings->GfxSendQoeAck = cnv.c;
break;
case FreeRDP_GfxSmallCache:
settings->GfxSmallCache = cnv.c;
break;
case FreeRDP_GfxThinClient:
settings->GfxThinClient = cnv.c;
break;
case FreeRDP_GrabKeyboard:
settings->GrabKeyboard = cnv.c;
break;
case FreeRDP_GrabMouse:
settings->GrabMouse = cnv.c;
break;
case FreeRDP_HasExtendedMouseEvent:
settings->HasExtendedMouseEvent = cnv.c;
break;
case FreeRDP_HasHorizontalWheel:
settings->HasHorizontalWheel = cnv.c;
break;
case FreeRDP_HasMonitorAttributes:
settings->HasMonitorAttributes = cnv.c;
break;
case FreeRDP_HiDefRemoteApp:
settings->HiDefRemoteApp = cnv.c;
break;
case FreeRDP_IPv6Enabled:
settings->IPv6Enabled = cnv.c;
break;
case FreeRDP_IgnoreCertificate:
settings->IgnoreCertificate = cnv.c;
break;
case FreeRDP_JpegCodec:
settings->JpegCodec = cnv.c;
break;
case FreeRDP_ListMonitors:
settings->ListMonitors = cnv.c;
break;
case FreeRDP_LocalConnection:
settings->LocalConnection = cnv.c;
break;
case FreeRDP_LogonErrors:
settings->LogonErrors = cnv.c;
break;
case FreeRDP_LogonNotify:
settings->LogonNotify = cnv.c;
break;
case FreeRDP_LongCredentialsSupported:
settings->LongCredentialsSupported = cnv.c;
break;
case FreeRDP_LyncRdpMode:
settings->LyncRdpMode = cnv.c;
break;
case FreeRDP_MaximizeShell:
settings->MaximizeShell = cnv.c;
break;
case FreeRDP_MouseAttached:
settings->MouseAttached = cnv.c;
break;
case FreeRDP_MouseHasWheel:
settings->MouseHasWheel = cnv.c;
break;
case FreeRDP_MouseMotion:
settings->MouseMotion = cnv.c;
break;
case FreeRDP_MstscCookieMode:
settings->MstscCookieMode = cnv.c;
break;
case FreeRDP_MultiTouchGestures:
settings->MultiTouchGestures = cnv.c;
break;
case FreeRDP_MultiTouchInput:
settings->MultiTouchInput = cnv.c;
break;
case FreeRDP_NSCodec:
settings->NSCodec = cnv.c;
break;
case FreeRDP_NSCodecAllowDynamicColorFidelity:
settings->NSCodecAllowDynamicColorFidelity = cnv.c;
break;
case FreeRDP_NSCodecAllowSubsampling:
settings->NSCodecAllowSubsampling = cnv.c;
break;
case FreeRDP_NegotiateSecurityLayer:
settings->NegotiateSecurityLayer = cnv.c;
break;
case FreeRDP_NetworkAutoDetect:
settings->NetworkAutoDetect = cnv.c;
break;
case FreeRDP_NlaSecurity:
settings->NlaSecurity = cnv.c;
break;
case FreeRDP_NoBitmapCompressionHeader:
settings->NoBitmapCompressionHeader = cnv.c;
break;
case FreeRDP_OldLicenseBehaviour:
settings->OldLicenseBehaviour = cnv.c;
break;
case FreeRDP_PasswordIsSmartcardPin:
settings->PasswordIsSmartcardPin = cnv.c;
break;
case FreeRDP_PercentScreenUseHeight:
settings->PercentScreenUseHeight = cnv.c;
break;
case FreeRDP_PercentScreenUseWidth:
settings->PercentScreenUseWidth = cnv.c;
break;
case FreeRDP_PlayRemoteFx:
settings->PlayRemoteFx = cnv.c;
break;
case FreeRDP_PreferIPv6OverIPv4:
settings->PreferIPv6OverIPv4 = cnv.c;
break;
case FreeRDP_PrintReconnectCookie:
settings->PrintReconnectCookie = cnv.c;
break;
case FreeRDP_PromptForCredentials:
settings->PromptForCredentials = cnv.c;
break;
case FreeRDP_RdpSecurity:
settings->RdpSecurity = cnv.c;
break;
case FreeRDP_RedirectClipboard:
settings->RedirectClipboard = cnv.c;
break;
case FreeRDP_RedirectDrives:
settings->RedirectDrives = cnv.c;
break;
case FreeRDP_RedirectHomeDrive:
settings->RedirectHomeDrive = cnv.c;
break;
case FreeRDP_RedirectParallelPorts:
settings->RedirectParallelPorts = cnv.c;
break;
case FreeRDP_RedirectPrinters:
settings->RedirectPrinters = cnv.c;
break;
case FreeRDP_RedirectSerialPorts:
settings->RedirectSerialPorts = cnv.c;
break;
case FreeRDP_RedirectSmartCards:
settings->RedirectSmartCards = cnv.c;
break;
case FreeRDP_RefreshRect:
settings->RefreshRect = cnv.c;
break;
case FreeRDP_RemdeskVirtualChannel:
settings->RemdeskVirtualChannel = cnv.c;
break;
case FreeRDP_RemoteAppLanguageBarSupported:
settings->RemoteAppLanguageBarSupported = cnv.c;
break;
case FreeRDP_RemoteApplicationMode:
settings->RemoteApplicationMode = cnv.c;
break;
case FreeRDP_RemoteAssistanceMode:
settings->RemoteAssistanceMode = cnv.c;
break;
case FreeRDP_RemoteAssistanceRequestControl:
settings->RemoteAssistanceRequestControl = cnv.c;
break;
case FreeRDP_RemoteConsoleAudio:
settings->RemoteConsoleAudio = cnv.c;
break;
case FreeRDP_RemoteFxCodec:
settings->RemoteFxCodec = cnv.c;
break;
case FreeRDP_RemoteFxImageCodec:
settings->RemoteFxImageCodec = cnv.c;
break;
case FreeRDP_RemoteFxOnly:
settings->RemoteFxOnly = cnv.c;
break;
case FreeRDP_RestrictedAdminModeRequired:
settings->RestrictedAdminModeRequired = cnv.c;
break;
case FreeRDP_SaltedChecksum:
settings->SaltedChecksum = cnv.c;
break;
case FreeRDP_SendPreconnectionPdu:
settings->SendPreconnectionPdu = cnv.c;
break;
case FreeRDP_ServerMode:
settings->ServerMode = cnv.c;
break;
case FreeRDP_SmartSizing:
settings->SmartSizing = cnv.c;
break;
case FreeRDP_SmartcardLogon:
settings->SmartcardLogon = cnv.c;
break;
case FreeRDP_SoftwareGdi:
settings->SoftwareGdi = cnv.c;
break;
case FreeRDP_SoundBeepsEnabled:
settings->SoundBeepsEnabled = cnv.c;
break;
case FreeRDP_SpanMonitors:
settings->SpanMonitors = cnv.c;
break;
case FreeRDP_SupportAsymetricKeys:
settings->SupportAsymetricKeys = cnv.c;
break;
case FreeRDP_SupportDisplayControl:
settings->SupportDisplayControl = cnv.c;
break;
case FreeRDP_SupportDynamicChannels:
settings->SupportDynamicChannels = cnv.c;
break;
case FreeRDP_SupportDynamicTimeZone:
settings->SupportDynamicTimeZone = cnv.c;
break;
case FreeRDP_SupportEchoChannel:
settings->SupportEchoChannel = cnv.c;
break;
case FreeRDP_SupportErrorInfoPdu:
settings->SupportErrorInfoPdu = cnv.c;
break;
case FreeRDP_SupportGeometryTracking:
settings->SupportGeometryTracking = cnv.c;
break;
case FreeRDP_SupportGraphicsPipeline:
settings->SupportGraphicsPipeline = cnv.c;
break;
case FreeRDP_SupportHeartbeatPdu:
settings->SupportHeartbeatPdu = cnv.c;
break;
case FreeRDP_SupportMonitorLayoutPdu:
settings->SupportMonitorLayoutPdu = cnv.c;
break;
case FreeRDP_SupportMultitransport:
settings->SupportMultitransport = cnv.c;
break;
case FreeRDP_SupportSSHAgentChannel:
settings->SupportSSHAgentChannel = cnv.c;
break;
case FreeRDP_SupportStatusInfoPdu:
settings->SupportStatusInfoPdu = cnv.c;
break;
case FreeRDP_SupportVideoOptimized:
settings->SupportVideoOptimized = cnv.c;
break;
case FreeRDP_SuppressOutput:
settings->SuppressOutput = cnv.c;
break;
case FreeRDP_SurfaceCommandsEnabled:
settings->SurfaceCommandsEnabled = cnv.c;
break;
case FreeRDP_SurfaceFrameMarkerEnabled:
settings->SurfaceFrameMarkerEnabled = cnv.c;
break;
case FreeRDP_SuspendInput:
settings->SuspendInput = cnv.c;
break;
case FreeRDP_TcpKeepAlive:
settings->TcpKeepAlive = cnv.c;
break;
case FreeRDP_TlsSecurity:
settings->TlsSecurity = cnv.c;
break;
case FreeRDP_ToggleFullscreen:
settings->ToggleFullscreen = cnv.c;
break;
case FreeRDP_TransportDump:
settings->TransportDump = cnv.c;
break;
case FreeRDP_TransportDumpReplay:
settings->TransportDumpReplay = cnv.c;
break;
case FreeRDP_UnicodeInput:
settings->UnicodeInput = cnv.c;
break;
case FreeRDP_UnmapButtons:
settings->UnmapButtons = cnv.c;
break;
case FreeRDP_UseMultimon:
settings->UseMultimon = cnv.c;
break;
case FreeRDP_UseRdpSecurityLayer:
settings->UseRdpSecurityLayer = cnv.c;
break;
case FreeRDP_UsingSavedCredentials:
settings->UsingSavedCredentials = cnv.c;
break;
case FreeRDP_VideoDisable:
settings->VideoDisable = cnv.c;
break;
case FreeRDP_VmConnectMode:
settings->VmConnectMode = cnv.c;
break;
case FreeRDP_WaitForOutputBufferFlush:
settings->WaitForOutputBufferFlush = cnv.c;
break;
case FreeRDP_Workarea:
settings->Workarea = cnv.c;
break;
default:
WLog_ERR(TAG, "[%s] Invalid key index %" PRIuz, __FUNCTION__, id);
return FALSE;
}
return TRUE;
}
UINT16 freerdp_settings_get_uint16(const rdpSettings* settings, size_t id)
{
WINPR_ASSERT(settings);
switch (id)
{
case FreeRDP_DesktopOrientation:
return settings->DesktopOrientation;
case FreeRDP_ProxyPort:
return settings->ProxyPort;
default:
WLog_ERR(TAG, "[%s] Invalid key index %" PRIuz, __FUNCTION__, id);
return FALSE;
}
}
BOOL freerdp_settings_set_uint16(rdpSettings* settings, size_t id, UINT16 val)
{
union
{
void* v;
const void* cv;
UINT16 c;
const UINT16 cc;
} cnv;
WINPR_ASSERT(settings);
cnv.c = val;
switch (id)
{
case FreeRDP_DesktopOrientation:
settings->DesktopOrientation = cnv.c;
break;
case FreeRDP_ProxyPort:
settings->ProxyPort = cnv.c;
break;
default:
WLog_ERR(TAG, "[%s] Invalid key index %" PRIuz, __FUNCTION__, id);
return FALSE;
}
return TRUE;
}
INT16 freerdp_settings_get_int16(const rdpSettings* settings, size_t id)
{
WINPR_ASSERT(settings);
switch (id)
{
default:
WLog_ERR(TAG, "[%s] Invalid key index %" PRIuz, __FUNCTION__, id);
return FALSE;
}
}
BOOL freerdp_settings_set_int16(rdpSettings* settings, size_t id, INT16 val)
{
union
{
void* v;
const void* cv;
INT16 c;
const INT16 cc;
} cnv;
WINPR_ASSERT(settings);
cnv.c = val;
switch (id)
{
default:
WLog_ERR(TAG, "[%s] Invalid key index %" PRIuz, __FUNCTION__, id);
return FALSE;
}
return TRUE;
}
UINT32 freerdp_settings_get_uint32(const rdpSettings* settings, size_t id)
{
WINPR_ASSERT(settings);
switch (id)
{
case FreeRDP_AcceptedCertLength:
return settings->AcceptedCertLength;
case FreeRDP_AuthenticationLevel:
return settings->AuthenticationLevel;
case FreeRDP_AutoReconnectMaxRetries:
return settings->AutoReconnectMaxRetries;
case FreeRDP_BitmapCacheV2NumCells:
return settings->BitmapCacheV2NumCells;
case FreeRDP_BitmapCacheV3CodecId:
return settings->BitmapCacheV3CodecId;
case FreeRDP_BitmapCacheVersion:
return settings->BitmapCacheVersion;
case FreeRDP_BrushSupportLevel:
return settings->BrushSupportLevel;
case FreeRDP_ChannelCount:
return settings->ChannelCount;
case FreeRDP_ChannelDefArraySize:
return settings->ChannelDefArraySize;
case FreeRDP_ClientBuild:
return settings->ClientBuild;
case FreeRDP_ClientRandomLength:
return settings->ClientRandomLength;
case FreeRDP_ClusterInfoFlags:
return settings->ClusterInfoFlags;
case FreeRDP_ColorDepth:
return settings->ColorDepth;
case FreeRDP_CompDeskSupportLevel:
return settings->CompDeskSupportLevel;
case FreeRDP_CompressionLevel:
return settings->CompressionLevel;
case FreeRDP_ConnectionType:
return settings->ConnectionType;
case FreeRDP_CookieMaxLength:
return settings->CookieMaxLength;
case FreeRDP_DesktopHeight:
return settings->DesktopHeight;
case FreeRDP_DesktopPhysicalHeight:
return settings->DesktopPhysicalHeight;
case FreeRDP_DesktopPhysicalWidth:
return settings->DesktopPhysicalWidth;
case FreeRDP_DesktopPosX:
return settings->DesktopPosX;
case FreeRDP_DesktopPosY:
return settings->DesktopPosY;
case FreeRDP_DesktopScaleFactor:
return settings->DesktopScaleFactor;
case FreeRDP_DesktopWidth:
return settings->DesktopWidth;
case FreeRDP_DeviceArraySize:
return settings->DeviceArraySize;
case FreeRDP_DeviceCount:
return settings->DeviceCount;
case FreeRDP_DeviceScaleFactor:
return settings->DeviceScaleFactor;
case FreeRDP_DrawNineGridCacheEntries:
return settings->DrawNineGridCacheEntries;
case FreeRDP_DrawNineGridCacheSize:
return settings->DrawNineGridCacheSize;
case FreeRDP_DynamicChannelArraySize:
return settings->DynamicChannelArraySize;
case FreeRDP_DynamicChannelCount:
return settings->DynamicChannelCount;
case FreeRDP_EarlyCapabilityFlags:
return settings->EarlyCapabilityFlags;
case FreeRDP_EncryptionLevel:
return settings->EncryptionLevel;
case FreeRDP_EncryptionMethods:
return settings->EncryptionMethods;
case FreeRDP_ExtEncryptionMethods:
return settings->ExtEncryptionMethods;
case FreeRDP_Floatbar:
return settings->Floatbar;
case FreeRDP_FrameAcknowledge:
return settings->FrameAcknowledge;
case FreeRDP_GatewayAcceptedCertLength:
return settings->GatewayAcceptedCertLength;
case FreeRDP_GatewayCredentialsSource:
return settings->GatewayCredentialsSource;
case FreeRDP_GatewayPort:
return settings->GatewayPort;
case FreeRDP_GatewayUsageMethod:
return settings->GatewayUsageMethod;
case FreeRDP_GfxCapsFilter:
return settings->GfxCapsFilter;
case FreeRDP_GlyphSupportLevel:
return settings->GlyphSupportLevel;
case FreeRDP_JpegCodecId:
return settings->JpegCodecId;
case FreeRDP_JpegQuality:
return settings->JpegQuality;
case FreeRDP_KeyboardCodePage:
return settings->KeyboardCodePage;
case FreeRDP_KeyboardFunctionKey:
return settings->KeyboardFunctionKey;
case FreeRDP_KeyboardHook:
return settings->KeyboardHook;
case FreeRDP_KeyboardLayout:
return settings->KeyboardLayout;
case FreeRDP_KeyboardSubType:
return settings->KeyboardSubType;
case FreeRDP_KeyboardType:
return settings->KeyboardType;
case FreeRDP_LargePointerFlag:
return settings->LargePointerFlag;
case FreeRDP_LoadBalanceInfoLength:
return settings->LoadBalanceInfoLength;
case FreeRDP_MaxTimeInCheckLoop:
return settings->MaxTimeInCheckLoop;
case FreeRDP_MonitorCount:
return settings->MonitorCount;
case FreeRDP_MonitorDefArraySize:
return settings->MonitorDefArraySize;
case FreeRDP_MonitorLocalShiftX:
return settings->MonitorLocalShiftX;
case FreeRDP_MonitorLocalShiftY:
return settings->MonitorLocalShiftY;
case FreeRDP_MultifragMaxRequestSize:
return settings->MultifragMaxRequestSize;
case FreeRDP_MultitransportFlags:
return settings->MultitransportFlags;
case FreeRDP_NSCodecColorLossLevel:
return settings->NSCodecColorLossLevel;
case FreeRDP_NSCodecId:
return settings->NSCodecId;
case FreeRDP_NegotiationFlags:
return settings->NegotiationFlags;
case FreeRDP_NumMonitorIds:
return settings->NumMonitorIds;
case FreeRDP_OffscreenCacheEntries:
return settings->OffscreenCacheEntries;
case FreeRDP_OffscreenCacheSize:
return settings->OffscreenCacheSize;
case FreeRDP_OffscreenSupportLevel:
return settings->OffscreenSupportLevel;
case FreeRDP_OsMajorType:
return settings->OsMajorType;
case FreeRDP_OsMinorType:
return settings->OsMinorType;
case FreeRDP_Password51Length:
return settings->Password51Length;
case FreeRDP_PduSource:
return settings->PduSource;
case FreeRDP_PercentScreen:
return settings->PercentScreen;
case FreeRDP_PerformanceFlags:
return settings->PerformanceFlags;
case FreeRDP_PointerCacheSize:
return settings->PointerCacheSize;
case FreeRDP_PreconnectionId:
return settings->PreconnectionId;
case FreeRDP_ProxyType:
return settings->ProxyType;
case FreeRDP_RdpVersion:
return settings->RdpVersion;
case FreeRDP_ReceivedCapabilitiesSize:
return settings->ReceivedCapabilitiesSize;
case FreeRDP_RedirectedSessionId:
return settings->RedirectedSessionId;
case FreeRDP_RedirectionAcceptedCertLength:
return settings->RedirectionAcceptedCertLength;
case FreeRDP_RedirectionFlags:
return settings->RedirectionFlags;
case FreeRDP_RedirectionPasswordLength:
return settings->RedirectionPasswordLength;
case FreeRDP_RedirectionPreferType:
return settings->RedirectionPreferType;
case FreeRDP_RedirectionTsvUrlLength:
return settings->RedirectionTsvUrlLength;
case FreeRDP_RemoteAppNumIconCacheEntries:
return settings->RemoteAppNumIconCacheEntries;
case FreeRDP_RemoteAppNumIconCaches:
return settings->RemoteAppNumIconCaches;
case FreeRDP_RemoteApplicationExpandCmdLine:
return settings->RemoteApplicationExpandCmdLine;
case FreeRDP_RemoteApplicationExpandWorkingDir:
return settings->RemoteApplicationExpandWorkingDir;
case FreeRDP_RemoteApplicationSupportLevel:
return settings->RemoteApplicationSupportLevel;
case FreeRDP_RemoteApplicationSupportMask:
return settings->RemoteApplicationSupportMask;
case FreeRDP_RemoteFxCaptureFlags:
return settings->RemoteFxCaptureFlags;
case FreeRDP_RemoteFxCodecId:
return settings->RemoteFxCodecId;
case FreeRDP_RemoteFxCodecMode:
return settings->RemoteFxCodecMode;
case FreeRDP_RemoteWndSupportLevel:
return settings->RemoteWndSupportLevel;
case FreeRDP_RequestedProtocols:
return settings->RequestedProtocols;
case FreeRDP_SelectedProtocol:
return settings->SelectedProtocol;
case FreeRDP_ServerCertificateLength:
return settings->ServerCertificateLength;
case FreeRDP_ServerPort:
return settings->ServerPort;
case FreeRDP_ServerRandomLength:
return settings->ServerRandomLength;
case FreeRDP_ShareId:
return settings->ShareId;
case FreeRDP_SmartSizingHeight:
return settings->SmartSizingHeight;
case FreeRDP_SmartSizingWidth:
return settings->SmartSizingWidth;
case FreeRDP_StaticChannelArraySize:
return settings->StaticChannelArraySize;
case FreeRDP_StaticChannelCount:
return settings->StaticChannelCount;
case FreeRDP_TargetNetAddressCount:
return settings->TargetNetAddressCount;
case FreeRDP_TcpAckTimeout:
return settings->TcpAckTimeout;
case FreeRDP_TcpConnectTimeout:
return settings->TcpConnectTimeout;
case FreeRDP_TcpKeepAliveDelay:
return settings->TcpKeepAliveDelay;
case FreeRDP_TcpKeepAliveInterval:
return settings->TcpKeepAliveInterval;
case FreeRDP_TcpKeepAliveRetries:
return settings->TcpKeepAliveRetries;
case FreeRDP_ThreadingFlags:
return settings->ThreadingFlags;
case FreeRDP_TlsSecLevel:
return settings->TlsSecLevel;
case FreeRDP_VirtualChannelChunkSize:
return settings->VirtualChannelChunkSize;
case FreeRDP_VirtualChannelCompressionFlags:
return settings->VirtualChannelCompressionFlags;
default:
WLog_ERR(TAG, "[%s] Invalid key index %" PRIuz, __FUNCTION__, id);
return FALSE;
}
}
BOOL freerdp_settings_set_uint32(rdpSettings* settings, size_t id, UINT32 val)
{
union
{
void* v;
const void* cv;
UINT32 c;
const UINT32 cc;
} cnv;
WINPR_ASSERT(settings);
cnv.c = val;
switch (id)
{
case FreeRDP_AcceptedCertLength:
settings->AcceptedCertLength = cnv.c;
break;
case FreeRDP_AuthenticationLevel:
settings->AuthenticationLevel = cnv.c;
break;
case FreeRDP_AutoReconnectMaxRetries:
settings->AutoReconnectMaxRetries = cnv.c;
break;
case FreeRDP_BitmapCacheV2NumCells:
settings->BitmapCacheV2NumCells = cnv.c;
break;
case FreeRDP_BitmapCacheV3CodecId:
settings->BitmapCacheV3CodecId = cnv.c;
break;
case FreeRDP_BitmapCacheVersion:
settings->BitmapCacheVersion = cnv.c;
break;
case FreeRDP_BrushSupportLevel:
settings->BrushSupportLevel = cnv.c;
break;
case FreeRDP_ChannelCount:
settings->ChannelCount = cnv.c;
break;
case FreeRDP_ChannelDefArraySize:
settings->ChannelDefArraySize = cnv.c;
break;
case FreeRDP_ClientBuild:
settings->ClientBuild = cnv.c;
break;
case FreeRDP_ClientRandomLength:
settings->ClientRandomLength = cnv.c;
break;
case FreeRDP_ClusterInfoFlags:
settings->ClusterInfoFlags = cnv.c;
break;
case FreeRDP_ColorDepth:
settings->ColorDepth = cnv.c;
break;
case FreeRDP_CompDeskSupportLevel:
settings->CompDeskSupportLevel = cnv.c;
break;
case FreeRDP_CompressionLevel:
settings->CompressionLevel = cnv.c;
break;
case FreeRDP_ConnectionType:
settings->ConnectionType = cnv.c;
break;
case FreeRDP_CookieMaxLength:
settings->CookieMaxLength = cnv.c;
break;
case FreeRDP_DesktopHeight:
settings->DesktopHeight = cnv.c;
break;
case FreeRDP_DesktopPhysicalHeight:
settings->DesktopPhysicalHeight = cnv.c;
break;
case FreeRDP_DesktopPhysicalWidth:
settings->DesktopPhysicalWidth = cnv.c;
break;
case FreeRDP_DesktopPosX:
settings->DesktopPosX = cnv.c;
break;
case FreeRDP_DesktopPosY:
settings->DesktopPosY = cnv.c;
break;
case FreeRDP_DesktopScaleFactor:
settings->DesktopScaleFactor = cnv.c;
break;
case FreeRDP_DesktopWidth:
settings->DesktopWidth = cnv.c;
break;
case FreeRDP_DeviceArraySize:
settings->DeviceArraySize = cnv.c;
break;
case FreeRDP_DeviceCount:
settings->DeviceCount = cnv.c;
break;
case FreeRDP_DeviceScaleFactor:
settings->DeviceScaleFactor = cnv.c;
break;
case FreeRDP_DrawNineGridCacheEntries:
settings->DrawNineGridCacheEntries = cnv.c;
break;
case FreeRDP_DrawNineGridCacheSize:
settings->DrawNineGridCacheSize = cnv.c;
break;
case FreeRDP_DynamicChannelArraySize:
settings->DynamicChannelArraySize = cnv.c;
break;
case FreeRDP_DynamicChannelCount:
settings->DynamicChannelCount = cnv.c;
break;
case FreeRDP_EarlyCapabilityFlags:
settings->EarlyCapabilityFlags = cnv.c;
break;
case FreeRDP_EncryptionLevel:
settings->EncryptionLevel = cnv.c;
break;
case FreeRDP_EncryptionMethods:
settings->EncryptionMethods = cnv.c;
break;
case FreeRDP_ExtEncryptionMethods:
settings->ExtEncryptionMethods = cnv.c;
break;
case FreeRDP_Floatbar:
settings->Floatbar = cnv.c;
break;
case FreeRDP_FrameAcknowledge:
settings->FrameAcknowledge = cnv.c;
break;
case FreeRDP_GatewayAcceptedCertLength:
settings->GatewayAcceptedCertLength = cnv.c;
break;
case FreeRDP_GatewayCredentialsSource:
settings->GatewayCredentialsSource = cnv.c;
break;
case FreeRDP_GatewayPort:
settings->GatewayPort = cnv.c;
break;
case FreeRDP_GatewayUsageMethod:
settings->GatewayUsageMethod = cnv.c;
break;
case FreeRDP_GfxCapsFilter:
settings->GfxCapsFilter = cnv.c;
break;
case FreeRDP_GlyphSupportLevel:
settings->GlyphSupportLevel = cnv.c;
break;
case FreeRDP_JpegCodecId:
settings->JpegCodecId = cnv.c;
break;
case FreeRDP_JpegQuality:
settings->JpegQuality = cnv.c;
break;
case FreeRDP_KeyboardCodePage:
settings->KeyboardCodePage = cnv.c;
break;
case FreeRDP_KeyboardFunctionKey:
settings->KeyboardFunctionKey = cnv.c;
break;
case FreeRDP_KeyboardHook:
settings->KeyboardHook = cnv.c;
break;
case FreeRDP_KeyboardLayout:
settings->KeyboardLayout = cnv.c;
break;
case FreeRDP_KeyboardSubType:
settings->KeyboardSubType = cnv.c;
break;
case FreeRDP_KeyboardType:
settings->KeyboardType = cnv.c;
break;
case FreeRDP_LargePointerFlag:
settings->LargePointerFlag = cnv.c;
break;
case FreeRDP_LoadBalanceInfoLength:
settings->LoadBalanceInfoLength = cnv.c;
break;
case FreeRDP_MaxTimeInCheckLoop:
settings->MaxTimeInCheckLoop = cnv.c;
break;
case FreeRDP_MonitorCount:
settings->MonitorCount = cnv.c;
break;
case FreeRDP_MonitorDefArraySize:
settings->MonitorDefArraySize = cnv.c;
break;
case FreeRDP_MonitorLocalShiftX:
settings->MonitorLocalShiftX = cnv.c;
break;
case FreeRDP_MonitorLocalShiftY:
settings->MonitorLocalShiftY = cnv.c;
break;
case FreeRDP_MultifragMaxRequestSize:
settings->MultifragMaxRequestSize = cnv.c;
break;
case FreeRDP_MultitransportFlags:
settings->MultitransportFlags = cnv.c;
break;
case FreeRDP_NSCodecColorLossLevel:
settings->NSCodecColorLossLevel = cnv.c;
break;
case FreeRDP_NSCodecId:
settings->NSCodecId = cnv.c;
break;
case FreeRDP_NegotiationFlags:
settings->NegotiationFlags = cnv.c;
break;
case FreeRDP_NumMonitorIds:
settings->NumMonitorIds = cnv.c;
break;
case FreeRDP_OffscreenCacheEntries:
settings->OffscreenCacheEntries = cnv.c;
break;
case FreeRDP_OffscreenCacheSize:
settings->OffscreenCacheSize = cnv.c;
break;
case FreeRDP_OffscreenSupportLevel:
settings->OffscreenSupportLevel = cnv.c;
break;
case FreeRDP_OsMajorType:
settings->OsMajorType = cnv.c;
break;
case FreeRDP_OsMinorType:
settings->OsMinorType = cnv.c;
break;
case FreeRDP_Password51Length:
settings->Password51Length = cnv.c;
break;
case FreeRDP_PduSource:
settings->PduSource = cnv.c;
break;
case FreeRDP_PercentScreen:
settings->PercentScreen = cnv.c;
break;
case FreeRDP_PerformanceFlags:
settings->PerformanceFlags = cnv.c;
break;
case FreeRDP_PointerCacheSize:
settings->PointerCacheSize = cnv.c;
break;
case FreeRDP_PreconnectionId:
settings->PreconnectionId = cnv.c;
break;
case FreeRDP_ProxyType:
settings->ProxyType = cnv.c;
break;
case FreeRDP_RdpVersion:
settings->RdpVersion = cnv.c;
break;
case FreeRDP_ReceivedCapabilitiesSize:
settings->ReceivedCapabilitiesSize = cnv.c;
break;
case FreeRDP_RedirectedSessionId:
settings->RedirectedSessionId = cnv.c;
break;
case FreeRDP_RedirectionAcceptedCertLength:
settings->RedirectionAcceptedCertLength = cnv.c;
break;
case FreeRDP_RedirectionFlags:
settings->RedirectionFlags = cnv.c;
break;
case FreeRDP_RedirectionPasswordLength:
settings->RedirectionPasswordLength = cnv.c;
break;
case FreeRDP_RedirectionPreferType:
settings->RedirectionPreferType = cnv.c;
break;
case FreeRDP_RedirectionTsvUrlLength:
settings->RedirectionTsvUrlLength = cnv.c;
break;
case FreeRDP_RemoteAppNumIconCacheEntries:
settings->RemoteAppNumIconCacheEntries = cnv.c;
break;
case FreeRDP_RemoteAppNumIconCaches:
settings->RemoteAppNumIconCaches = cnv.c;
break;
case FreeRDP_RemoteApplicationExpandCmdLine:
settings->RemoteApplicationExpandCmdLine = cnv.c;
break;
case FreeRDP_RemoteApplicationExpandWorkingDir:
settings->RemoteApplicationExpandWorkingDir = cnv.c;
break;
case FreeRDP_RemoteApplicationSupportLevel:
settings->RemoteApplicationSupportLevel = cnv.c;
break;
case FreeRDP_RemoteApplicationSupportMask:
settings->RemoteApplicationSupportMask = cnv.c;
break;
case FreeRDP_RemoteFxCaptureFlags:
settings->RemoteFxCaptureFlags = cnv.c;
break;
case FreeRDP_RemoteFxCodecId:
settings->RemoteFxCodecId = cnv.c;
break;
case FreeRDP_RemoteFxCodecMode:
settings->RemoteFxCodecMode = cnv.c;
break;
case FreeRDP_RemoteWndSupportLevel:
settings->RemoteWndSupportLevel = cnv.c;
break;
case FreeRDP_RequestedProtocols:
settings->RequestedProtocols = cnv.c;
break;
case FreeRDP_SelectedProtocol:
settings->SelectedProtocol = cnv.c;
break;
case FreeRDP_ServerCertificateLength:
settings->ServerCertificateLength = cnv.c;
break;
case FreeRDP_ServerPort:
settings->ServerPort = cnv.c;
break;
case FreeRDP_ServerRandomLength:
settings->ServerRandomLength = cnv.c;
break;
case FreeRDP_ShareId:
settings->ShareId = cnv.c;
break;
case FreeRDP_SmartSizingHeight:
settings->SmartSizingHeight = cnv.c;
break;
case FreeRDP_SmartSizingWidth:
settings->SmartSizingWidth = cnv.c;
break;
case FreeRDP_StaticChannelArraySize:
settings->StaticChannelArraySize = cnv.c;
break;
case FreeRDP_StaticChannelCount:
settings->StaticChannelCount = cnv.c;
break;
case FreeRDP_TargetNetAddressCount:
settings->TargetNetAddressCount = cnv.c;
break;
case FreeRDP_TcpAckTimeout:
settings->TcpAckTimeout = cnv.c;
break;
case FreeRDP_TcpConnectTimeout:
settings->TcpConnectTimeout = cnv.c;
break;
case FreeRDP_TcpKeepAliveDelay:
settings->TcpKeepAliveDelay = cnv.c;
break;
case FreeRDP_TcpKeepAliveInterval:
settings->TcpKeepAliveInterval = cnv.c;
break;
case FreeRDP_TcpKeepAliveRetries:
settings->TcpKeepAliveRetries = cnv.c;
break;
case FreeRDP_ThreadingFlags:
settings->ThreadingFlags = cnv.c;
break;
case FreeRDP_TlsSecLevel:
settings->TlsSecLevel = cnv.c;
break;
case FreeRDP_VirtualChannelChunkSize:
settings->VirtualChannelChunkSize = cnv.c;
break;
case FreeRDP_VirtualChannelCompressionFlags:
settings->VirtualChannelCompressionFlags = cnv.c;
break;
default:
WLog_ERR(TAG, "[%s] Invalid key index %" PRIuz, __FUNCTION__, id);
return FALSE;
}
return TRUE;
}
INT32 freerdp_settings_get_int32(const rdpSettings* settings, size_t id)
{
WINPR_ASSERT(settings);
switch (id)
{
case FreeRDP_XPan:
return settings->XPan;
case FreeRDP_YPan:
return settings->YPan;
default:
WLog_ERR(TAG, "[%s] Invalid key index %" PRIuz, __FUNCTION__, id);
return FALSE;
}
}
BOOL freerdp_settings_set_int32(rdpSettings* settings, size_t id, INT32 val)
{
union
{
void* v;
const void* cv;
INT32 c;
const INT32 cc;
} cnv;
WINPR_ASSERT(settings);
cnv.c = val;
switch (id)
{
case FreeRDP_XPan:
settings->XPan = cnv.c;
break;
case FreeRDP_YPan:
settings->YPan = cnv.c;
break;
default:
WLog_ERR(TAG, "[%s] Invalid key index %" PRIuz, __FUNCTION__, id);
return FALSE;
}
return TRUE;
}
UINT64 freerdp_settings_get_uint64(const rdpSettings* settings, size_t id)
{
WINPR_ASSERT(settings);
switch (id)
{
case FreeRDP_ParentWindowId:
return settings->ParentWindowId;
default:
WLog_ERR(TAG, "[%s] Invalid key index %" PRIuz, __FUNCTION__, id);
return FALSE;
}
}
BOOL freerdp_settings_set_uint64(rdpSettings* settings, size_t id, UINT64 val)
{
union
{
void* v;
const void* cv;
UINT64 c;
const UINT64 cc;
} cnv;
WINPR_ASSERT(settings);
cnv.c = val;
switch (id)
{
case FreeRDP_ParentWindowId:
settings->ParentWindowId = cnv.c;
break;
default:
WLog_ERR(TAG, "[%s] Invalid key index %" PRIuz, __FUNCTION__, id);
return FALSE;
}
return TRUE;
}
INT64 freerdp_settings_get_int64(const rdpSettings* settings, size_t id)
{
WINPR_ASSERT(settings);
switch (id)
{
default:
WLog_ERR(TAG, "[%s] Invalid key index %" PRIuz, __FUNCTION__, id);
return FALSE;
}
}
BOOL freerdp_settings_set_int64(rdpSettings* settings, size_t id, INT64 val)
{
union
{
void* v;
const void* cv;
INT64 c;
const INT64 cc;
} cnv;
WINPR_ASSERT(settings);
cnv.c = val;
switch (id)
{
default:
WLog_ERR(TAG, "[%s] Invalid key index %" PRIuz, __FUNCTION__, id);
return FALSE;
}
return TRUE;
}
const char* freerdp_settings_get_string(const rdpSettings* settings, size_t id)
{
WINPR_ASSERT(settings);
switch (id)
{
case FreeRDP_AcceptedCert:
return settings->AcceptedCert;
case FreeRDP_ActionScript:
return settings->ActionScript;
case FreeRDP_AllowedTlsCiphers:
return settings->AllowedTlsCiphers;
case FreeRDP_AlternateShell:
return settings->AlternateShell;
case FreeRDP_AssistanceFile:
return settings->AssistanceFile;
case FreeRDP_AuthenticationServiceClass:
return settings->AuthenticationServiceClass;
case FreeRDP_CertificateAcceptedFingerprints:
return settings->CertificateAcceptedFingerprints;
case FreeRDP_CertificateContent:
return settings->CertificateContent;
case FreeRDP_CertificateFile:
return settings->CertificateFile;
case FreeRDP_CertificateName:
return settings->CertificateName;
case FreeRDP_ClientAddress:
return settings->ClientAddress;
case FreeRDP_ClientDir:
return settings->ClientDir;
case FreeRDP_ClientHostname:
return settings->ClientHostname;
case FreeRDP_ClientProductId:
return settings->ClientProductId;
case FreeRDP_ComputerName:
return settings->ComputerName;
case FreeRDP_ConfigPath:
return settings->ConfigPath;
case FreeRDP_ConnectionFile:
return settings->ConnectionFile;
case FreeRDP_CurrentPath:
return settings->CurrentPath;
case FreeRDP_Domain:
return settings->Domain;
case FreeRDP_DrivesToRedirect:
return settings->DrivesToRedirect;
case FreeRDP_DumpRemoteFxFile:
return settings->DumpRemoteFxFile;
case FreeRDP_DynamicDSTTimeZoneKeyName:
return settings->DynamicDSTTimeZoneKeyName;
case FreeRDP_GatewayAcceptedCert:
return settings->GatewayAcceptedCert;
case FreeRDP_GatewayAccessToken:
return settings->GatewayAccessToken;
case FreeRDP_GatewayDomain:
return settings->GatewayDomain;
case FreeRDP_GatewayHostname:
return settings->GatewayHostname;
case FreeRDP_GatewayPassword:
return settings->GatewayPassword;
case FreeRDP_GatewayUsername:
return settings->GatewayUsername;
case FreeRDP_HomePath:
return settings->HomePath;
case FreeRDP_ImeFileName:
return settings->ImeFileName;
case FreeRDP_KerberosKdc:
return settings->KerberosKdc;
case FreeRDP_KerberosRealm:
return settings->KerberosRealm;
case FreeRDP_KeyboardRemappingList:
return settings->KeyboardRemappingList;
case FreeRDP_NtlmSamFile:
return settings->NtlmSamFile;
case FreeRDP_Password:
return settings->Password;
case FreeRDP_PasswordHash:
return settings->PasswordHash;
case FreeRDP_PlayRemoteFxFile:
return settings->PlayRemoteFxFile;
case FreeRDP_PreconnectionBlob:
return settings->PreconnectionBlob;
case FreeRDP_PrivateKeyContent:
return settings->PrivateKeyContent;
case FreeRDP_PrivateKeyFile:
return settings->PrivateKeyFile;
case FreeRDP_ProxyHostname:
return settings->ProxyHostname;
case FreeRDP_ProxyPassword:
return settings->ProxyPassword;
case FreeRDP_ProxyUsername:
return settings->ProxyUsername;
case FreeRDP_RDP2TCPArgs:
return settings->RDP2TCPArgs;
case FreeRDP_RdpKeyContent:
return settings->RdpKeyContent;
case FreeRDP_RdpKeyFile:
return settings->RdpKeyFile;
case FreeRDP_RedirectionAcceptedCert:
return settings->RedirectionAcceptedCert;
case FreeRDP_RedirectionDomain:
return settings->RedirectionDomain;
case FreeRDP_RedirectionTargetFQDN:
return settings->RedirectionTargetFQDN;
case FreeRDP_RedirectionTargetNetBiosName:
return settings->RedirectionTargetNetBiosName;
case FreeRDP_RedirectionUsername:
return settings->RedirectionUsername;
case FreeRDP_RemoteApplicationCmdLine:
return settings->RemoteApplicationCmdLine;
case FreeRDP_RemoteApplicationFile:
return settings->RemoteApplicationFile;
case FreeRDP_RemoteApplicationGuid:
return settings->RemoteApplicationGuid;
case FreeRDP_RemoteApplicationIcon:
return settings->RemoteApplicationIcon;
case FreeRDP_RemoteApplicationName:
return settings->RemoteApplicationName;
case FreeRDP_RemoteApplicationProgram:
return settings->RemoteApplicationProgram;
case FreeRDP_RemoteApplicationWorkingDir:
return settings->RemoteApplicationWorkingDir;
case FreeRDP_RemoteAssistancePassStub:
return settings->RemoteAssistancePassStub;
case FreeRDP_RemoteAssistancePassword:
return settings->RemoteAssistancePassword;
case FreeRDP_RemoteAssistanceRCTicket:
return settings->RemoteAssistanceRCTicket;
case FreeRDP_RemoteAssistanceSessionId:
return settings->RemoteAssistanceSessionId;
case FreeRDP_ServerHostname:
return settings->ServerHostname;
case FreeRDP_ShellWorkingDirectory:
return settings->ShellWorkingDirectory;
case FreeRDP_SmartcardCertificate:
return settings->SmartcardCertificate;
case FreeRDP_SmartcardPrivateKey:
return settings->SmartcardPrivateKey;
case FreeRDP_TargetNetAddress:
return settings->TargetNetAddress;
case FreeRDP_TransportDumpFile:
return settings->TransportDumpFile;
case FreeRDP_Username:
return settings->Username;
case FreeRDP_WindowTitle:
return settings->WindowTitle;
case FreeRDP_WmClass:
return settings->WmClass;
default:
WLog_ERR(TAG, "[%s] Invalid key index %" PRIuz, __FUNCTION__, id);
return FALSE;
}
}
char* freerdp_settings_get_string_writable(rdpSettings* settings, size_t id)
{
WINPR_ASSERT(settings);
switch (id)
{
case FreeRDP_AcceptedCert:
return settings->AcceptedCert;
case FreeRDP_ActionScript:
return settings->ActionScript;
case FreeRDP_AllowedTlsCiphers:
return settings->AllowedTlsCiphers;
case FreeRDP_AlternateShell:
return settings->AlternateShell;
case FreeRDP_AssistanceFile:
return settings->AssistanceFile;
case FreeRDP_AuthenticationServiceClass:
return settings->AuthenticationServiceClass;
case FreeRDP_CertificateAcceptedFingerprints:
return settings->CertificateAcceptedFingerprints;
case FreeRDP_CertificateContent:
return settings->CertificateContent;
case FreeRDP_CertificateFile:
return settings->CertificateFile;
case FreeRDP_CertificateName:
return settings->CertificateName;
case FreeRDP_ClientAddress:
return settings->ClientAddress;
case FreeRDP_ClientDir:
return settings->ClientDir;
case FreeRDP_ClientHostname:
return settings->ClientHostname;
case FreeRDP_ClientProductId:
return settings->ClientProductId;
case FreeRDP_ComputerName:
return settings->ComputerName;
case FreeRDP_ConfigPath:
return settings->ConfigPath;
case FreeRDP_ConnectionFile:
return settings->ConnectionFile;
case FreeRDP_CurrentPath:
return settings->CurrentPath;
case FreeRDP_Domain:
return settings->Domain;
case FreeRDP_DrivesToRedirect:
return settings->DrivesToRedirect;
case FreeRDP_DumpRemoteFxFile:
return settings->DumpRemoteFxFile;
case FreeRDP_DynamicDSTTimeZoneKeyName:
return settings->DynamicDSTTimeZoneKeyName;
case FreeRDP_GatewayAcceptedCert:
return settings->GatewayAcceptedCert;
case FreeRDP_GatewayAccessToken:
return settings->GatewayAccessToken;
case FreeRDP_GatewayDomain:
return settings->GatewayDomain;
case FreeRDP_GatewayHostname:
return settings->GatewayHostname;
case FreeRDP_GatewayPassword:
return settings->GatewayPassword;
case FreeRDP_GatewayUsername:
return settings->GatewayUsername;
case FreeRDP_HomePath:
return settings->HomePath;
case FreeRDP_ImeFileName:
return settings->ImeFileName;
case FreeRDP_KerberosKdc:
return settings->KerberosKdc;
case FreeRDP_KerberosRealm:
return settings->KerberosRealm;
case FreeRDP_KeyboardRemappingList:
return settings->KeyboardRemappingList;
case FreeRDP_NtlmSamFile:
return settings->NtlmSamFile;
case FreeRDP_Password:
return settings->Password;
case FreeRDP_PasswordHash:
return settings->PasswordHash;
case FreeRDP_PlayRemoteFxFile:
return settings->PlayRemoteFxFile;
case FreeRDP_PreconnectionBlob:
return settings->PreconnectionBlob;
case FreeRDP_PrivateKeyContent:
return settings->PrivateKeyContent;
case FreeRDP_PrivateKeyFile:
return settings->PrivateKeyFile;
case FreeRDP_ProxyHostname:
return settings->ProxyHostname;
case FreeRDP_ProxyPassword:
return settings->ProxyPassword;
case FreeRDP_ProxyUsername:
return settings->ProxyUsername;
case FreeRDP_RDP2TCPArgs:
return settings->RDP2TCPArgs;
case FreeRDP_RdpKeyContent:
return settings->RdpKeyContent;
case FreeRDP_RdpKeyFile:
return settings->RdpKeyFile;
case FreeRDP_RedirectionAcceptedCert:
return settings->RedirectionAcceptedCert;
case FreeRDP_RedirectionDomain:
return settings->RedirectionDomain;
case FreeRDP_RedirectionTargetFQDN:
return settings->RedirectionTargetFQDN;
case FreeRDP_RedirectionTargetNetBiosName:
return settings->RedirectionTargetNetBiosName;
case FreeRDP_RedirectionUsername:
return settings->RedirectionUsername;
case FreeRDP_RemoteApplicationCmdLine:
return settings->RemoteApplicationCmdLine;
case FreeRDP_RemoteApplicationFile:
return settings->RemoteApplicationFile;
case FreeRDP_RemoteApplicationGuid:
return settings->RemoteApplicationGuid;
case FreeRDP_RemoteApplicationIcon:
return settings->RemoteApplicationIcon;
case FreeRDP_RemoteApplicationName:
return settings->RemoteApplicationName;
case FreeRDP_RemoteApplicationProgram:
return settings->RemoteApplicationProgram;
case FreeRDP_RemoteApplicationWorkingDir:
return settings->RemoteApplicationWorkingDir;
case FreeRDP_RemoteAssistancePassStub:
return settings->RemoteAssistancePassStub;
case FreeRDP_RemoteAssistancePassword:
return settings->RemoteAssistancePassword;
case FreeRDP_RemoteAssistanceRCTicket:
return settings->RemoteAssistanceRCTicket;
case FreeRDP_RemoteAssistanceSessionId:
return settings->RemoteAssistanceSessionId;
case FreeRDP_ServerHostname:
return settings->ServerHostname;
case FreeRDP_ShellWorkingDirectory:
return settings->ShellWorkingDirectory;
case FreeRDP_SmartcardCertificate:
return settings->SmartcardCertificate;
case FreeRDP_SmartcardPrivateKey:
return settings->SmartcardPrivateKey;
case FreeRDP_TargetNetAddress:
return settings->TargetNetAddress;
case FreeRDP_TransportDumpFile:
return settings->TransportDumpFile;
case FreeRDP_Username:
return settings->Username;
case FreeRDP_WindowTitle:
return settings->WindowTitle;
case FreeRDP_WmClass:
return settings->WmClass;
default:
WLog_ERR(TAG, "[%s] Invalid key index %" PRIuz, __FUNCTION__, id);
return FALSE;
}
}
BOOL freerdp_settings_set_string_(rdpSettings* settings, size_t id, const char* val, size_t len,
BOOL cleanup)
{
union
{
void* v;
const void* cv;
char* c;
const char* cc;
} cnv;
WINPR_ASSERT(settings);
cnv.cc = val;
switch (id)
{
case FreeRDP_AcceptedCert:
return update_string(&settings->AcceptedCert, cnv.cc, len, cleanup);
case FreeRDP_ActionScript:
return update_string(&settings->ActionScript, cnv.cc, len, cleanup);
case FreeRDP_AllowedTlsCiphers:
return update_string(&settings->AllowedTlsCiphers, cnv.cc, len, cleanup);
case FreeRDP_AlternateShell:
return update_string(&settings->AlternateShell, cnv.cc, len, cleanup);
case FreeRDP_AssistanceFile:
return update_string(&settings->AssistanceFile, cnv.cc, len, cleanup);
case FreeRDP_AuthenticationServiceClass:
return update_string(&settings->AuthenticationServiceClass, cnv.cc, len, cleanup);
case FreeRDP_CertificateAcceptedFingerprints:
return update_string(&settings->CertificateAcceptedFingerprints, cnv.cc, len, cleanup);
case FreeRDP_CertificateContent:
return update_string(&settings->CertificateContent, cnv.cc, len, cleanup);
case FreeRDP_CertificateFile:
return update_string(&settings->CertificateFile, cnv.cc, len, cleanup);
case FreeRDP_CertificateName:
return update_string(&settings->CertificateName, cnv.cc, len, cleanup);
case FreeRDP_ClientAddress:
return update_string(&settings->ClientAddress, cnv.cc, len, cleanup);
case FreeRDP_ClientDir:
return update_string(&settings->ClientDir, cnv.cc, len, cleanup);
case FreeRDP_ClientHostname:
return update_string(&settings->ClientHostname, cnv.cc, len, cleanup);
case FreeRDP_ClientProductId:
return update_string(&settings->ClientProductId, cnv.cc, len, cleanup);
case FreeRDP_ComputerName:
return update_string(&settings->ComputerName, cnv.cc, len, cleanup);
case FreeRDP_ConfigPath:
return update_string(&settings->ConfigPath, cnv.cc, len, cleanup);
case FreeRDP_ConnectionFile:
return update_string(&settings->ConnectionFile, cnv.cc, len, cleanup);
case FreeRDP_CurrentPath:
return update_string(&settings->CurrentPath, cnv.cc, len, cleanup);
case FreeRDP_Domain:
return update_string(&settings->Domain, cnv.cc, len, cleanup);
case FreeRDP_DrivesToRedirect:
return update_string(&settings->DrivesToRedirect, cnv.cc, len, cleanup);
case FreeRDP_DumpRemoteFxFile:
return update_string(&settings->DumpRemoteFxFile, cnv.cc, len, cleanup);
case FreeRDP_DynamicDSTTimeZoneKeyName:
return update_string(&settings->DynamicDSTTimeZoneKeyName, cnv.cc, len, cleanup);
case FreeRDP_GatewayAcceptedCert:
return update_string(&settings->GatewayAcceptedCert, cnv.cc, len, cleanup);
case FreeRDP_GatewayAccessToken:
return update_string(&settings->GatewayAccessToken, cnv.cc, len, cleanup);
case FreeRDP_GatewayDomain:
return update_string(&settings->GatewayDomain, cnv.cc, len, cleanup);
case FreeRDP_GatewayHostname:
return update_string(&settings->GatewayHostname, cnv.cc, len, cleanup);
case FreeRDP_GatewayPassword:
return update_string(&settings->GatewayPassword, cnv.cc, len, cleanup);
case FreeRDP_GatewayUsername:
return update_string(&settings->GatewayUsername, cnv.cc, len, cleanup);
case FreeRDP_HomePath:
return update_string(&settings->HomePath, cnv.cc, len, cleanup);
case FreeRDP_ImeFileName:
return update_string(&settings->ImeFileName, cnv.cc, len, cleanup);
case FreeRDP_KerberosKdc:
return update_string(&settings->KerberosKdc, cnv.cc, len, cleanup);
case FreeRDP_KerberosRealm:
return update_string(&settings->KerberosRealm, cnv.cc, len, cleanup);
case FreeRDP_KeyboardRemappingList:
return update_string(&settings->KeyboardRemappingList, cnv.cc, len, cleanup);
case FreeRDP_NtlmSamFile:
return update_string(&settings->NtlmSamFile, cnv.cc, len, cleanup);
case FreeRDP_Password:
return update_string(&settings->Password, cnv.cc, len, cleanup);
case FreeRDP_PasswordHash:
return update_string(&settings->PasswordHash, cnv.cc, len, cleanup);
case FreeRDP_PlayRemoteFxFile:
return update_string(&settings->PlayRemoteFxFile, cnv.cc, len, cleanup);
case FreeRDP_PreconnectionBlob:
return update_string(&settings->PreconnectionBlob, cnv.cc, len, cleanup);
case FreeRDP_PrivateKeyContent:
return update_string(&settings->PrivateKeyContent, cnv.cc, len, cleanup);
case FreeRDP_PrivateKeyFile:
return update_string(&settings->PrivateKeyFile, cnv.cc, len, cleanup);
case FreeRDP_ProxyHostname:
return update_string(&settings->ProxyHostname, cnv.cc, len, cleanup);
case FreeRDP_ProxyPassword:
return update_string(&settings->ProxyPassword, cnv.cc, len, cleanup);
case FreeRDP_ProxyUsername:
return update_string(&settings->ProxyUsername, cnv.cc, len, cleanup);
case FreeRDP_RDP2TCPArgs:
return update_string(&settings->RDP2TCPArgs, cnv.cc, len, cleanup);
case FreeRDP_RdpKeyContent:
return update_string(&settings->RdpKeyContent, cnv.cc, len, cleanup);
case FreeRDP_RdpKeyFile:
return update_string(&settings->RdpKeyFile, cnv.cc, len, cleanup);
case FreeRDP_RedirectionAcceptedCert:
return update_string(&settings->RedirectionAcceptedCert, cnv.cc, len, cleanup);
case FreeRDP_RedirectionDomain:
return update_string(&settings->RedirectionDomain, cnv.cc, len, cleanup);
case FreeRDP_RedirectionTargetFQDN:
return update_string(&settings->RedirectionTargetFQDN, cnv.cc, len, cleanup);
case FreeRDP_RedirectionTargetNetBiosName:
return update_string(&settings->RedirectionTargetNetBiosName, cnv.cc, len, cleanup);
case FreeRDP_RedirectionUsername:
return update_string(&settings->RedirectionUsername, cnv.cc, len, cleanup);
case FreeRDP_RemoteApplicationCmdLine:
return update_string(&settings->RemoteApplicationCmdLine, cnv.cc, len, cleanup);
case FreeRDP_RemoteApplicationFile:
return update_string(&settings->RemoteApplicationFile, cnv.cc, len, cleanup);
case FreeRDP_RemoteApplicationGuid:
return update_string(&settings->RemoteApplicationGuid, cnv.cc, len, cleanup);
case FreeRDP_RemoteApplicationIcon:
return update_string(&settings->RemoteApplicationIcon, cnv.cc, len, cleanup);
case FreeRDP_RemoteApplicationName:
return update_string(&settings->RemoteApplicationName, cnv.cc, len, cleanup);
case FreeRDP_RemoteApplicationProgram:
return update_string(&settings->RemoteApplicationProgram, cnv.cc, len, cleanup);
case FreeRDP_RemoteApplicationWorkingDir:
return update_string(&settings->RemoteApplicationWorkingDir, cnv.cc, len, cleanup);
case FreeRDP_RemoteAssistancePassStub:
return update_string(&settings->RemoteAssistancePassStub, cnv.cc, len, cleanup);
case FreeRDP_RemoteAssistancePassword:
return update_string(&settings->RemoteAssistancePassword, cnv.cc, len, cleanup);
case FreeRDP_RemoteAssistanceRCTicket:
return update_string(&settings->RemoteAssistanceRCTicket, cnv.cc, len, cleanup);
case FreeRDP_RemoteAssistanceSessionId:
return update_string(&settings->RemoteAssistanceSessionId, cnv.cc, len, cleanup);
case FreeRDP_ServerHostname:
return update_string(&settings->ServerHostname, cnv.cc, len, cleanup);
case FreeRDP_ShellWorkingDirectory:
return update_string(&settings->ShellWorkingDirectory, cnv.cc, len, cleanup);
case FreeRDP_SmartcardCertificate:
return update_string(&settings->SmartcardCertificate, cnv.cc, len, cleanup);
case FreeRDP_SmartcardPrivateKey:
return update_string(&settings->SmartcardPrivateKey, cnv.cc, len, cleanup);
case FreeRDP_TargetNetAddress:
return update_string(&settings->TargetNetAddress, cnv.cc, len, cleanup);
case FreeRDP_TransportDumpFile:
return update_string(&settings->TransportDumpFile, cnv.cc, len, cleanup);
case FreeRDP_Username:
return update_string(&settings->Username, cnv.cc, len, cleanup);
case FreeRDP_WindowTitle:
return update_string(&settings->WindowTitle, cnv.cc, len, cleanup);
case FreeRDP_WmClass:
return update_string(&settings->WmClass, cnv.cc, len, cleanup);
default:
WLog_ERR(TAG, "[%s] Invalid key index %" PRIuz, __FUNCTION__, id);
return FALSE;
}
return TRUE;
}
BOOL freerdp_settings_set_string_len(rdpSettings* settings, size_t id, const char* val, size_t len)
{
return freerdp_settings_set_string_(settings, id, val, len, TRUE);
}
BOOL freerdp_settings_set_string(rdpSettings* settings, size_t id, const char* val)
{
size_t len = 0;
if (val)
len = strlen(val);
return freerdp_settings_set_string_(settings, id, val, len, TRUE);
}
void* freerdp_settings_get_pointer_writable(rdpSettings* settings, size_t id)
{
WINPR_ASSERT(settings);
switch (id)
{
case FreeRDP_BitmapCacheV2CellInfo:
return settings->BitmapCacheV2CellInfo;
case FreeRDP_ChannelDefArray:
return settings->ChannelDefArray;
case FreeRDP_ClientAutoReconnectCookie:
return settings->ClientAutoReconnectCookie;
case FreeRDP_ClientRandom:
return settings->ClientRandom;
case FreeRDP_ClientTimeZone:
return settings->ClientTimeZone;
case FreeRDP_DeviceArray:
return settings->DeviceArray;
case FreeRDP_DynamicChannelArray:
return settings->DynamicChannelArray;
case FreeRDP_FragCache:
return settings->FragCache;
case FreeRDP_GlyphCache:
return settings->GlyphCache;
case FreeRDP_LoadBalanceInfo:
return settings->LoadBalanceInfo;
case FreeRDP_MonitorDefArray:
return settings->MonitorDefArray;
case FreeRDP_MonitorIds:
return settings->MonitorIds;
case FreeRDP_OrderSupport:
return settings->OrderSupport;
case FreeRDP_Password51:
return settings->Password51;
case FreeRDP_RdpServerCertificate:
return settings->RdpServerCertificate;
case FreeRDP_RdpServerRsaKey:
return settings->RdpServerRsaKey;
case FreeRDP_ReceivedCapabilities:
return settings->ReceivedCapabilities;
case FreeRDP_RedirectionPassword:
return settings->RedirectionPassword;
case FreeRDP_RedirectionTsvUrl:
return settings->RedirectionTsvUrl;
case FreeRDP_ServerAutoReconnectCookie:
return settings->ServerAutoReconnectCookie;
case FreeRDP_ServerCertificate:
return settings->ServerCertificate;
case FreeRDP_ServerRandom:
return settings->ServerRandom;
case FreeRDP_StaticChannelArray:
return settings->StaticChannelArray;
case FreeRDP_TargetNetAddresses:
return settings->TargetNetAddresses;
case FreeRDP_TargetNetPorts:
return settings->TargetNetPorts;
case FreeRDP_instance:
return settings->instance;
default:
WLog_ERR(TAG, "[%s] Invalid key index %" PRIuz, __FUNCTION__, id);
return FALSE;
}
}
BOOL freerdp_settings_set_pointer(rdpSettings* settings, size_t id, const void* val)
{
union
{
void* v;
const void* cv;
} cnv;
WINPR_ASSERT(settings);
cnv.cv = val;
switch (id)
{
case FreeRDP_BitmapCacheV2CellInfo:
settings->BitmapCacheV2CellInfo = cnv.v;
break;
case FreeRDP_ChannelDefArray:
settings->ChannelDefArray = cnv.v;
break;
case FreeRDP_ClientAutoReconnectCookie:
settings->ClientAutoReconnectCookie = cnv.v;
break;
case FreeRDP_ClientRandom:
settings->ClientRandom = cnv.v;
break;
case FreeRDP_ClientTimeZone:
settings->ClientTimeZone = cnv.v;
break;
case FreeRDP_DeviceArray:
settings->DeviceArray = cnv.v;
break;
case FreeRDP_DynamicChannelArray:
settings->DynamicChannelArray = cnv.v;
break;
case FreeRDP_FragCache:
settings->FragCache = cnv.v;
break;
case FreeRDP_GlyphCache:
settings->GlyphCache = cnv.v;
break;
case FreeRDP_LoadBalanceInfo:
settings->LoadBalanceInfo = cnv.v;
break;
case FreeRDP_MonitorDefArray:
settings->MonitorDefArray = cnv.v;
break;
case FreeRDP_MonitorIds:
settings->MonitorIds = cnv.v;
break;
case FreeRDP_OrderSupport:
settings->OrderSupport = cnv.v;
break;
case FreeRDP_Password51:
settings->Password51 = cnv.v;
break;
case FreeRDP_RdpServerCertificate:
settings->RdpServerCertificate = cnv.v;
break;
case FreeRDP_RdpServerRsaKey:
settings->RdpServerRsaKey = cnv.v;
break;
case FreeRDP_ReceivedCapabilities:
settings->ReceivedCapabilities = cnv.v;
break;
case FreeRDP_RedirectionPassword:
settings->RedirectionPassword = cnv.v;
break;
case FreeRDP_RedirectionTsvUrl:
settings->RedirectionTsvUrl = cnv.v;
break;
case FreeRDP_ServerAutoReconnectCookie:
settings->ServerAutoReconnectCookie = cnv.v;
break;
case FreeRDP_ServerCertificate:
settings->ServerCertificate = cnv.v;
break;
case FreeRDP_ServerRandom:
settings->ServerRandom = cnv.v;
break;
case FreeRDP_StaticChannelArray:
settings->StaticChannelArray = cnv.v;
break;
case FreeRDP_TargetNetAddresses:
settings->TargetNetAddresses = cnv.v;
break;
case FreeRDP_TargetNetPorts:
settings->TargetNetPorts = cnv.v;
break;
case FreeRDP_instance:
settings->instance = cnv.v;
break;
default:
WLog_ERR(TAG, "[%s] Invalid key index %" PRIuz, __FUNCTION__, id);
return FALSE;
}
return TRUE;
}