Coverage Report

Created: 2023-09-25 06:56

/src/FreeRDP/libfreerdp/common/settings_str.c
Line
Count
Source (jump to first uncovered line)
1
/* Generated by  */
2
3
#include <freerdp/settings.h>
4
#include <freerdp/log.h>
5
6
#include "../core/settings.h"
7
8
#define TAG FREERDP_TAG("common.settings")
9
10
typedef enum
11
{
12
  FREERDP_SETTINGS_TYPE_BOOL,
13
  FREERDP_SETTINGS_TYPE_UINT16,
14
  FREERDP_SETTINGS_TYPE_INT16,
15
  FREERDP_SETTINGS_TYPE_UINT32,
16
  FREERDP_SETTINGS_TYPE_INT32,
17
  FREERDP_SETTINGS_TYPE_UINT64,
18
  FREERDP_SETTINGS_TYPE_INT64,
19
  FREERDP_SETTINGS_TYPE_STRING,
20
  FREERDP_SETTINGS_TYPE_POINTER
21
} FREERDP_SETTINGS_TYPE;
22
23
struct settings_str_entry
24
{
25
  size_t id;
26
  size_t type;
27
  const char* str;
28
};
29
static const struct settings_str_entry settings_map[] = {
30
  { FreeRDP_AadSecurity, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_AadSecurity" },
31
  { FreeRDP_AllowCacheWaitingList, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_AllowCacheWaitingList" },
32
  { FreeRDP_AllowDesktopComposition, FREERDP_SETTINGS_TYPE_BOOL,
33
    "FreeRDP_AllowDesktopComposition" },
34
  { FreeRDP_AllowFontSmoothing, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_AllowFontSmoothing" },
35
  { FreeRDP_AllowUnanouncedOrdersFromServer, FREERDP_SETTINGS_TYPE_BOOL,
36
    "FreeRDP_AllowUnanouncedOrdersFromServer" },
37
  { FreeRDP_AltSecFrameMarkerSupport, FREERDP_SETTINGS_TYPE_BOOL,
38
    "FreeRDP_AltSecFrameMarkerSupport" },
39
  { FreeRDP_AsyncChannels, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_AsyncChannels" },
40
  { FreeRDP_AsyncUpdate, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_AsyncUpdate" },
41
  { FreeRDP_AudioCapture, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_AudioCapture" },
42
  { FreeRDP_AudioPlayback, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_AudioPlayback" },
43
  { FreeRDP_Authentication, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_Authentication" },
44
  { FreeRDP_AuthenticationOnly, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_AuthenticationOnly" },
45
  { FreeRDP_AutoAcceptCertificate, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_AutoAcceptCertificate" },
46
  { FreeRDP_AutoDenyCertificate, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_AutoDenyCertificate" },
47
  { FreeRDP_AutoLogonEnabled, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_AutoLogonEnabled" },
48
  { FreeRDP_AutoReconnectionEnabled, FREERDP_SETTINGS_TYPE_BOOL,
49
    "FreeRDP_AutoReconnectionEnabled" },
50
  { FreeRDP_BitmapCacheEnabled, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_BitmapCacheEnabled" },
51
  { FreeRDP_BitmapCachePersistEnabled, FREERDP_SETTINGS_TYPE_BOOL,
52
    "FreeRDP_BitmapCachePersistEnabled" },
53
  { FreeRDP_BitmapCacheV3Enabled, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_BitmapCacheV3Enabled" },
54
  { FreeRDP_BitmapCompressionDisabled, FREERDP_SETTINGS_TYPE_BOOL,
55
    "FreeRDP_BitmapCompressionDisabled" },
56
  { FreeRDP_CertificateCallbackPreferPEM, FREERDP_SETTINGS_TYPE_BOOL,
57
    "FreeRDP_CertificateCallbackPreferPEM" },
58
  { FreeRDP_CompressionEnabled, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_CompressionEnabled" },
59
  { FreeRDP_ConsoleSession, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_ConsoleSession" },
60
  { FreeRDP_CredentialsFromStdin, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_CredentialsFromStdin" },
61
  { FreeRDP_DeactivateClientDecoding, FREERDP_SETTINGS_TYPE_BOOL,
62
    "FreeRDP_DeactivateClientDecoding" },
63
  { FreeRDP_Decorations, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_Decorations" },
64
  { FreeRDP_DesktopResize, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_DesktopResize" },
65
  { FreeRDP_DeviceRedirection, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_DeviceRedirection" },
66
  { FreeRDP_DisableCredentialsDelegation, FREERDP_SETTINGS_TYPE_BOOL,
67
    "FreeRDP_DisableCredentialsDelegation" },
68
  { FreeRDP_DisableCtrlAltDel, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_DisableCtrlAltDel" },
69
  { FreeRDP_DisableCursorBlinking, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_DisableCursorBlinking" },
70
  { FreeRDP_DisableCursorShadow, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_DisableCursorShadow" },
71
  { FreeRDP_DisableFullWindowDrag, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_DisableFullWindowDrag" },
72
  { FreeRDP_DisableMenuAnims, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_DisableMenuAnims" },
73
  { FreeRDP_DisableRemoteAppCapsCheck, FREERDP_SETTINGS_TYPE_BOOL,
74
    "FreeRDP_DisableRemoteAppCapsCheck" },
75
  { FreeRDP_DisableThemes, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_DisableThemes" },
76
  { FreeRDP_DisableWallpaper, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_DisableWallpaper" },
77
  { FreeRDP_DrawAllowColorSubsampling, FREERDP_SETTINGS_TYPE_BOOL,
78
    "FreeRDP_DrawAllowColorSubsampling" },
79
  { FreeRDP_DrawAllowDynamicColorFidelity, FREERDP_SETTINGS_TYPE_BOOL,
80
    "FreeRDP_DrawAllowDynamicColorFidelity" },
81
  { FreeRDP_DrawAllowSkipAlpha, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_DrawAllowSkipAlpha" },
82
  { FreeRDP_DrawGdiPlusCacheEnabled, FREERDP_SETTINGS_TYPE_BOOL,
83
    "FreeRDP_DrawGdiPlusCacheEnabled" },
84
  { FreeRDP_DrawGdiPlusEnabled, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_DrawGdiPlusEnabled" },
85
  { FreeRDP_DrawNineGridEnabled, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_DrawNineGridEnabled" },
86
  { FreeRDP_DumpRemoteFx, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_DumpRemoteFx" },
87
  { FreeRDP_DynamicDaylightTimeDisabled, FREERDP_SETTINGS_TYPE_BOOL,
88
    "FreeRDP_DynamicDaylightTimeDisabled" },
89
  { FreeRDP_DynamicResolutionUpdate, FREERDP_SETTINGS_TYPE_BOOL,
90
    "FreeRDP_DynamicResolutionUpdate" },
91
  { FreeRDP_EmbeddedWindow, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_EmbeddedWindow" },
92
  { FreeRDP_EnableWindowsKey, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_EnableWindowsKey" },
93
  { FreeRDP_EncomspVirtualChannel, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_EncomspVirtualChannel" },
94
  { FreeRDP_ExtSecurity, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_ExtSecurity" },
95
  { FreeRDP_ExternalCertificateManagement, FREERDP_SETTINGS_TYPE_BOOL,
96
    "FreeRDP_ExternalCertificateManagement" },
97
  { FreeRDP_FIPSMode, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_FIPSMode" },
98
  { FreeRDP_FastPathInput, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_FastPathInput" },
99
  { FreeRDP_FastPathOutput, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_FastPathOutput" },
100
  { FreeRDP_ForceEncryptedCsPdu, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_ForceEncryptedCsPdu" },
101
  { FreeRDP_ForceMultimon, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_ForceMultimon" },
102
  { FreeRDP_FrameMarkerCommandEnabled, FREERDP_SETTINGS_TYPE_BOOL,
103
    "FreeRDP_FrameMarkerCommandEnabled" },
104
  { FreeRDP_Fullscreen, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_Fullscreen" },
105
  { FreeRDP_GatewayArmTransport, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_GatewayArmTransport" },
106
  { FreeRDP_GatewayBypassLocal, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_GatewayBypassLocal" },
107
  { FreeRDP_GatewayEnabled, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_GatewayEnabled" },
108
  { FreeRDP_GatewayHttpExtAuthSspiNtlm, FREERDP_SETTINGS_TYPE_BOOL,
109
    "FreeRDP_GatewayHttpExtAuthSspiNtlm" },
110
  { FreeRDP_GatewayHttpTransport, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_GatewayHttpTransport" },
111
  { FreeRDP_GatewayHttpUseWebsockets, FREERDP_SETTINGS_TYPE_BOOL,
112
    "FreeRDP_GatewayHttpUseWebsockets" },
113
  { FreeRDP_GatewayRpcTransport, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_GatewayRpcTransport" },
114
  { FreeRDP_GatewayUdpTransport, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_GatewayUdpTransport" },
115
  { FreeRDP_GatewayUseSameCredentials, FREERDP_SETTINGS_TYPE_BOOL,
116
    "FreeRDP_GatewayUseSameCredentials" },
117
  { FreeRDP_GfxAVC444, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_GfxAVC444" },
118
  { FreeRDP_GfxAVC444v2, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_GfxAVC444v2" },
119
  { FreeRDP_GfxH264, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_GfxH264" },
120
  { FreeRDP_GfxPlanar, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_GfxPlanar" },
121
  { FreeRDP_GfxProgressive, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_GfxProgressive" },
122
  { FreeRDP_GfxProgressiveV2, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_GfxProgressiveV2" },
123
  { FreeRDP_GfxSendQoeAck, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_GfxSendQoeAck" },
124
  { FreeRDP_GfxSmallCache, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_GfxSmallCache" },
125
  { FreeRDP_GfxThinClient, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_GfxThinClient" },
126
  { FreeRDP_GrabKeyboard, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_GrabKeyboard" },
127
  { FreeRDP_GrabMouse, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_GrabMouse" },
128
  { FreeRDP_HasExtendedMouseEvent, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_HasExtendedMouseEvent" },
129
  { FreeRDP_HasHorizontalWheel, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_HasHorizontalWheel" },
130
  { FreeRDP_HasMonitorAttributes, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_HasMonitorAttributes" },
131
  { FreeRDP_HiDefRemoteApp, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_HiDefRemoteApp" },
132
  { FreeRDP_IPv6Enabled, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_IPv6Enabled" },
133
  { FreeRDP_IgnoreCertificate, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_IgnoreCertificate" },
134
  { FreeRDP_IgnoreInvalidDevices, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_IgnoreInvalidDevices" },
135
  { FreeRDP_JpegCodec, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_JpegCodec" },
136
  { FreeRDP_KerberosRdgIsProxy, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_KerberosRdgIsProxy" },
137
  { FreeRDP_ListMonitors, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_ListMonitors" },
138
  { FreeRDP_LocalConnection, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_LocalConnection" },
139
  { FreeRDP_LogonErrors, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_LogonErrors" },
140
  { FreeRDP_LogonNotify, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_LogonNotify" },
141
  { FreeRDP_LongCredentialsSupported, FREERDP_SETTINGS_TYPE_BOOL,
142
    "FreeRDP_LongCredentialsSupported" },
143
  { FreeRDP_LyncRdpMode, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_LyncRdpMode" },
144
  { FreeRDP_MaximizeShell, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_MaximizeShell" },
145
  { FreeRDP_MouseAttached, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_MouseAttached" },
146
  { FreeRDP_MouseHasWheel, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_MouseHasWheel" },
147
  { FreeRDP_MouseMotion, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_MouseMotion" },
148
  { FreeRDP_MouseUseRelativeMove, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_MouseUseRelativeMove" },
149
  { FreeRDP_MstscCookieMode, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_MstscCookieMode" },
150
  { FreeRDP_MultiTouchGestures, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_MultiTouchGestures" },
151
  { FreeRDP_MultiTouchInput, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_MultiTouchInput" },
152
  { FreeRDP_NSCodec, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_NSCodec" },
153
  { FreeRDP_NSCodecAllowDynamicColorFidelity, FREERDP_SETTINGS_TYPE_BOOL,
154
    "FreeRDP_NSCodecAllowDynamicColorFidelity" },
155
  { FreeRDP_NSCodecAllowSubsampling, FREERDP_SETTINGS_TYPE_BOOL,
156
    "FreeRDP_NSCodecAllowSubsampling" },
157
  { FreeRDP_NegotiateSecurityLayer, FREERDP_SETTINGS_TYPE_BOOL,
158
    "FreeRDP_NegotiateSecurityLayer" },
159
  { FreeRDP_NetworkAutoDetect, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_NetworkAutoDetect" },
160
  { FreeRDP_NlaSecurity, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_NlaSecurity" },
161
  { FreeRDP_NoBitmapCompressionHeader, FREERDP_SETTINGS_TYPE_BOOL,
162
    "FreeRDP_NoBitmapCompressionHeader" },
163
  { FreeRDP_OldLicenseBehaviour, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_OldLicenseBehaviour" },
164
  { FreeRDP_PasswordIsSmartcardPin, FREERDP_SETTINGS_TYPE_BOOL,
165
    "FreeRDP_PasswordIsSmartcardPin" },
166
  { FreeRDP_PercentScreenUseHeight, FREERDP_SETTINGS_TYPE_BOOL,
167
    "FreeRDP_PercentScreenUseHeight" },
168
  { FreeRDP_PercentScreenUseWidth, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_PercentScreenUseWidth" },
169
  { FreeRDP_PlayRemoteFx, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_PlayRemoteFx" },
170
  { FreeRDP_PreferIPv6OverIPv4, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_PreferIPv6OverIPv4" },
171
  { FreeRDP_PrintReconnectCookie, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_PrintReconnectCookie" },
172
  { FreeRDP_PromptForCredentials, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_PromptForCredentials" },
173
  { FreeRDP_RdpSecurity, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_RdpSecurity" },
174
  { FreeRDP_RdstlsSecurity, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_RdstlsSecurity" },
175
  { FreeRDP_RedirectClipboard, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_RedirectClipboard" },
176
  { FreeRDP_RedirectDrives, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_RedirectDrives" },
177
  { FreeRDP_RedirectHomeDrive, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_RedirectHomeDrive" },
178
  { FreeRDP_RedirectParallelPorts, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_RedirectParallelPorts" },
179
  { FreeRDP_RedirectPrinters, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_RedirectPrinters" },
180
  { FreeRDP_RedirectSerialPorts, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_RedirectSerialPorts" },
181
  { FreeRDP_RedirectSmartCards, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_RedirectSmartCards" },
182
  { FreeRDP_RedirectWebAuthN, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_RedirectWebAuthN" },
183
  { FreeRDP_RefreshRect, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_RefreshRect" },
184
  { FreeRDP_RemdeskVirtualChannel, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_RemdeskVirtualChannel" },
185
  { FreeRDP_RemoteAppLanguageBarSupported, FREERDP_SETTINGS_TYPE_BOOL,
186
    "FreeRDP_RemoteAppLanguageBarSupported" },
187
  { FreeRDP_RemoteApplicationMode, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_RemoteApplicationMode" },
188
  { FreeRDP_RemoteAssistanceMode, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_RemoteAssistanceMode" },
189
  { FreeRDP_RemoteAssistanceRequestControl, FREERDP_SETTINGS_TYPE_BOOL,
190
    "FreeRDP_RemoteAssistanceRequestControl" },
191
  { FreeRDP_RemoteConsoleAudio, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_RemoteConsoleAudio" },
192
  { FreeRDP_RemoteFxCodec, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_RemoteFxCodec" },
193
  { FreeRDP_RemoteFxImageCodec, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_RemoteFxImageCodec" },
194
  { FreeRDP_RemoteFxOnly, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_RemoteFxOnly" },
195
  { FreeRDP_RestrictedAdminModeRequired, FREERDP_SETTINGS_TYPE_BOOL,
196
    "FreeRDP_RestrictedAdminModeRequired" },
197
  { FreeRDP_SaltedChecksum, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_SaltedChecksum" },
198
  { FreeRDP_SendPreconnectionPdu, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_SendPreconnectionPdu" },
199
  { FreeRDP_ServerLicenseRequired, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_ServerLicenseRequired" },
200
  { FreeRDP_ServerMode, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_ServerMode" },
201
  { FreeRDP_SmartSizing, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_SmartSizing" },
202
  { FreeRDP_SmartcardEmulation, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_SmartcardEmulation" },
203
  { FreeRDP_SmartcardLogon, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_SmartcardLogon" },
204
  { FreeRDP_SoftwareGdi, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_SoftwareGdi" },
205
  { FreeRDP_SoundBeepsEnabled, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_SoundBeepsEnabled" },
206
  { FreeRDP_SpanMonitors, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_SpanMonitors" },
207
  { FreeRDP_SupportAsymetricKeys, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_SupportAsymetricKeys" },
208
  { FreeRDP_SupportDisplayControl, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_SupportDisplayControl" },
209
  { FreeRDP_SupportDynamicChannels, FREERDP_SETTINGS_TYPE_BOOL,
210
    "FreeRDP_SupportDynamicChannels" },
211
  { FreeRDP_SupportDynamicTimeZone, FREERDP_SETTINGS_TYPE_BOOL,
212
    "FreeRDP_SupportDynamicTimeZone" },
213
  { FreeRDP_SupportEchoChannel, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_SupportEchoChannel" },
214
  { FreeRDP_SupportEdgeActionV1, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_SupportEdgeActionV1" },
215
  { FreeRDP_SupportEdgeActionV2, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_SupportEdgeActionV2" },
216
  { FreeRDP_SupportErrorInfoPdu, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_SupportErrorInfoPdu" },
217
  { FreeRDP_SupportGeometryTracking, FREERDP_SETTINGS_TYPE_BOOL,
218
    "FreeRDP_SupportGeometryTracking" },
219
  { FreeRDP_SupportGraphicsPipeline, FREERDP_SETTINGS_TYPE_BOOL,
220
    "FreeRDP_SupportGraphicsPipeline" },
221
  { FreeRDP_SupportHeartbeatPdu, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_SupportHeartbeatPdu" },
222
  { FreeRDP_SupportMonitorLayoutPdu, FREERDP_SETTINGS_TYPE_BOOL,
223
    "FreeRDP_SupportMonitorLayoutPdu" },
224
  { FreeRDP_SupportMultitransport, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_SupportMultitransport" },
225
  { FreeRDP_SupportSSHAgentChannel, FREERDP_SETTINGS_TYPE_BOOL,
226
    "FreeRDP_SupportSSHAgentChannel" },
227
  { FreeRDP_SupportSkipChannelJoin, FREERDP_SETTINGS_TYPE_BOOL,
228
    "FreeRDP_SupportSkipChannelJoin" },
229
  { FreeRDP_SupportStatusInfoPdu, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_SupportStatusInfoPdu" },
230
  { FreeRDP_SupportVideoOptimized, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_SupportVideoOptimized" },
231
  { FreeRDP_SuppressOutput, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_SuppressOutput" },
232
  { FreeRDP_SurfaceCommandsEnabled, FREERDP_SETTINGS_TYPE_BOOL,
233
    "FreeRDP_SurfaceCommandsEnabled" },
234
  { FreeRDP_SurfaceFrameMarkerEnabled, FREERDP_SETTINGS_TYPE_BOOL,
235
    "FreeRDP_SurfaceFrameMarkerEnabled" },
236
  { FreeRDP_SuspendInput, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_SuspendInput" },
237
  { FreeRDP_TcpKeepAlive, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_TcpKeepAlive" },
238
  { FreeRDP_TlsSecurity, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_TlsSecurity" },
239
  { FreeRDP_ToggleFullscreen, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_ToggleFullscreen" },
240
  { FreeRDP_TransportDump, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_TransportDump" },
241
  { FreeRDP_TransportDumpReplay, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_TransportDumpReplay" },
242
  { FreeRDP_UnicodeInput, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_UnicodeInput" },
243
  { FreeRDP_UnmapButtons, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_UnmapButtons" },
244
  { FreeRDP_UseCommonStdioCallbacks, FREERDP_SETTINGS_TYPE_BOOL,
245
    "FreeRDP_UseCommonStdioCallbacks" },
246
  { FreeRDP_UseMultimon, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_UseMultimon" },
247
  { FreeRDP_UseRdpSecurityLayer, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_UseRdpSecurityLayer" },
248
  { FreeRDP_UsingSavedCredentials, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_UsingSavedCredentials" },
249
  { FreeRDP_VideoDisable, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_VideoDisable" },
250
  { FreeRDP_VmConnectMode, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_VmConnectMode" },
251
  { FreeRDP_WaitForOutputBufferFlush, FREERDP_SETTINGS_TYPE_BOOL,
252
    "FreeRDP_WaitForOutputBufferFlush" },
253
  { FreeRDP_Workarea, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_Workarea" },
254
  { FreeRDP_CapsGeneralCompressionLevel, FREERDP_SETTINGS_TYPE_UINT16,
255
    "FreeRDP_CapsGeneralCompressionLevel" },
256
  { FreeRDP_CapsGeneralCompressionTypes, FREERDP_SETTINGS_TYPE_UINT16,
257
    "FreeRDP_CapsGeneralCompressionTypes" },
258
  { FreeRDP_CapsProtocolVersion, FREERDP_SETTINGS_TYPE_UINT16, "FreeRDP_CapsProtocolVersion" },
259
  { FreeRDP_CapsRemoteUnshareFlag, FREERDP_SETTINGS_TYPE_UINT16,
260
    "FreeRDP_CapsRemoteUnshareFlag" },
261
  { FreeRDP_CapsUpdateCapabilityFlag, FREERDP_SETTINGS_TYPE_UINT16,
262
    "FreeRDP_CapsUpdateCapabilityFlag" },
263
  { FreeRDP_DesktopOrientation, FREERDP_SETTINGS_TYPE_UINT16, "FreeRDP_DesktopOrientation" },
264
  { FreeRDP_OrderSupportFlags, FREERDP_SETTINGS_TYPE_UINT16, "FreeRDP_OrderSupportFlags" },
265
  { FreeRDP_OrderSupportFlagsEx, FREERDP_SETTINGS_TYPE_UINT16, "FreeRDP_OrderSupportFlagsEx" },
266
  { FreeRDP_ProxyPort, FREERDP_SETTINGS_TYPE_UINT16, "FreeRDP_ProxyPort" },
267
  { FreeRDP_SupportedColorDepths, FREERDP_SETTINGS_TYPE_UINT16, "FreeRDP_SupportedColorDepths" },
268
  { FreeRDP_TLSMaxVersion, FREERDP_SETTINGS_TYPE_UINT16, "FreeRDP_TLSMaxVersion" },
269
  { FreeRDP_TLSMinVersion, FREERDP_SETTINGS_TYPE_UINT16, "FreeRDP_TLSMinVersion" },
270
  { FreeRDP_TextANSICodePage, FREERDP_SETTINGS_TYPE_UINT16, "FreeRDP_TextANSICodePage" },
271
  { FreeRDP_AcceptedCertLength, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_AcceptedCertLength" },
272
  { FreeRDP_AuthenticationLevel, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_AuthenticationLevel" },
273
  { FreeRDP_AutoReconnectMaxRetries, FREERDP_SETTINGS_TYPE_UINT32,
274
    "FreeRDP_AutoReconnectMaxRetries" },
275
  { FreeRDP_BitmapCacheV2NumCells, FREERDP_SETTINGS_TYPE_UINT32,
276
    "FreeRDP_BitmapCacheV2NumCells" },
277
  { FreeRDP_BitmapCacheV3CodecId, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_BitmapCacheV3CodecId" },
278
  { FreeRDP_BitmapCacheVersion, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_BitmapCacheVersion" },
279
  { FreeRDP_BrushSupportLevel, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_BrushSupportLevel" },
280
  { FreeRDP_ChannelCount, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_ChannelCount" },
281
  { FreeRDP_ChannelDefArraySize, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_ChannelDefArraySize" },
282
  { FreeRDP_ClientBuild, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_ClientBuild" },
283
  { FreeRDP_ClientRandomLength, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_ClientRandomLength" },
284
  { FreeRDP_ClientSessionId, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_ClientSessionId" },
285
  { FreeRDP_ClipboardFeatureMask, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_ClipboardFeatureMask" },
286
  { FreeRDP_ClusterInfoFlags, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_ClusterInfoFlags" },
287
  { FreeRDP_ColorDepth, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_ColorDepth" },
288
  { FreeRDP_ColorPointerCacheSize, FREERDP_SETTINGS_TYPE_UINT32,
289
    "FreeRDP_ColorPointerCacheSize" },
290
  { FreeRDP_CompDeskSupportLevel, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_CompDeskSupportLevel" },
291
  { FreeRDP_CompressionLevel, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_CompressionLevel" },
292
  { FreeRDP_ConnectionType, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_ConnectionType" },
293
  { FreeRDP_CookieMaxLength, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_CookieMaxLength" },
294
  { FreeRDP_DesktopHeight, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_DesktopHeight" },
295
  { FreeRDP_DesktopPhysicalHeight, FREERDP_SETTINGS_TYPE_UINT32,
296
    "FreeRDP_DesktopPhysicalHeight" },
297
  { FreeRDP_DesktopPhysicalWidth, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_DesktopPhysicalWidth" },
298
  { FreeRDP_DesktopPosX, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_DesktopPosX" },
299
  { FreeRDP_DesktopPosY, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_DesktopPosY" },
300
  { FreeRDP_DesktopScaleFactor, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_DesktopScaleFactor" },
301
  { FreeRDP_DesktopWidth, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_DesktopWidth" },
302
  { FreeRDP_DeviceArraySize, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_DeviceArraySize" },
303
  { FreeRDP_DeviceCount, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_DeviceCount" },
304
  { FreeRDP_DeviceScaleFactor, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_DeviceScaleFactor" },
305
  { FreeRDP_DrawNineGridCacheEntries, FREERDP_SETTINGS_TYPE_UINT32,
306
    "FreeRDP_DrawNineGridCacheEntries" },
307
  { FreeRDP_DrawNineGridCacheSize, FREERDP_SETTINGS_TYPE_UINT32,
308
    "FreeRDP_DrawNineGridCacheSize" },
309
  { FreeRDP_DynamicChannelArraySize, FREERDP_SETTINGS_TYPE_UINT32,
310
    "FreeRDP_DynamicChannelArraySize" },
311
  { FreeRDP_DynamicChannelCount, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_DynamicChannelCount" },
312
  { FreeRDP_EarlyCapabilityFlags, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_EarlyCapabilityFlags" },
313
  { FreeRDP_EncryptionLevel, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_EncryptionLevel" },
314
  { FreeRDP_EncryptionMethods, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_EncryptionMethods" },
315
  { FreeRDP_ExtEncryptionMethods, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_ExtEncryptionMethods" },
316
  { FreeRDP_Floatbar, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_Floatbar" },
317
  { FreeRDP_FrameAcknowledge, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_FrameAcknowledge" },
318
  { FreeRDP_GatewayAcceptedCertLength, FREERDP_SETTINGS_TYPE_UINT32,
319
    "FreeRDP_GatewayAcceptedCertLength" },
320
  { FreeRDP_GatewayCredentialsSource, FREERDP_SETTINGS_TYPE_UINT32,
321
    "FreeRDP_GatewayCredentialsSource" },
322
  { FreeRDP_GatewayPort, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_GatewayPort" },
323
  { FreeRDP_GatewayUsageMethod, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_GatewayUsageMethod" },
324
  { FreeRDP_GfxCapsFilter, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_GfxCapsFilter" },
325
  { FreeRDP_GlyphSupportLevel, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_GlyphSupportLevel" },
326
  { FreeRDP_JpegCodecId, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_JpegCodecId" },
327
  { FreeRDP_JpegQuality, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_JpegQuality" },
328
  { FreeRDP_KeySpec, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_KeySpec" },
329
  { FreeRDP_KeyboardCodePage, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_KeyboardCodePage" },
330
  { FreeRDP_KeyboardFunctionKey, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_KeyboardFunctionKey" },
331
  { FreeRDP_KeyboardHook, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_KeyboardHook" },
332
  { FreeRDP_KeyboardLayout, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_KeyboardLayout" },
333
  { FreeRDP_KeyboardSubType, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_KeyboardSubType" },
334
  { FreeRDP_KeyboardType, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_KeyboardType" },
335
  { FreeRDP_LargePointerFlag, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_LargePointerFlag" },
336
  { FreeRDP_LoadBalanceInfoLength, FREERDP_SETTINGS_TYPE_UINT32,
337
    "FreeRDP_LoadBalanceInfoLength" },
338
  { FreeRDP_MonitorAttributeFlags, FREERDP_SETTINGS_TYPE_UINT32,
339
    "FreeRDP_MonitorAttributeFlags" },
340
  { FreeRDP_MonitorCount, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_MonitorCount" },
341
  { FreeRDP_MonitorDefArraySize, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_MonitorDefArraySize" },
342
  { FreeRDP_MonitorFlags, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_MonitorFlags" },
343
  { FreeRDP_MonitorLocalShiftX, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_MonitorLocalShiftX" },
344
  { FreeRDP_MonitorLocalShiftY, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_MonitorLocalShiftY" },
345
  { FreeRDP_MultifragMaxRequestSize, FREERDP_SETTINGS_TYPE_UINT32,
346
    "FreeRDP_MultifragMaxRequestSize" },
347
  { FreeRDP_MultitransportFlags, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_MultitransportFlags" },
348
  { FreeRDP_NSCodecColorLossLevel, FREERDP_SETTINGS_TYPE_UINT32,
349
    "FreeRDP_NSCodecColorLossLevel" },
350
  { FreeRDP_NSCodecId, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_NSCodecId" },
351
  { FreeRDP_NegotiationFlags, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_NegotiationFlags" },
352
  { FreeRDP_NumMonitorIds, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_NumMonitorIds" },
353
  { FreeRDP_OffscreenCacheEntries, FREERDP_SETTINGS_TYPE_UINT32,
354
    "FreeRDP_OffscreenCacheEntries" },
355
  { FreeRDP_OffscreenCacheSize, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_OffscreenCacheSize" },
356
  { FreeRDP_OffscreenSupportLevel, FREERDP_SETTINGS_TYPE_UINT32,
357
    "FreeRDP_OffscreenSupportLevel" },
358
  { FreeRDP_OsMajorType, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_OsMajorType" },
359
  { FreeRDP_OsMinorType, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_OsMinorType" },
360
  { FreeRDP_Password51Length, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_Password51Length" },
361
  { FreeRDP_PduSource, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_PduSource" },
362
  { FreeRDP_PercentScreen, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_PercentScreen" },
363
  { FreeRDP_PerformanceFlags, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_PerformanceFlags" },
364
  { FreeRDP_PointerCacheSize, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_PointerCacheSize" },
365
  { FreeRDP_PreconnectionId, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_PreconnectionId" },
366
  { FreeRDP_ProxyType, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_ProxyType" },
367
  { FreeRDP_RdpVersion, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_RdpVersion" },
368
  { FreeRDP_ReceivedCapabilitiesSize, FREERDP_SETTINGS_TYPE_UINT32,
369
    "FreeRDP_ReceivedCapabilitiesSize" },
370
  { FreeRDP_RedirectedSessionId, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_RedirectedSessionId" },
371
  { FreeRDP_RedirectionAcceptedCertLength, FREERDP_SETTINGS_TYPE_UINT32,
372
    "FreeRDP_RedirectionAcceptedCertLength" },
373
  { FreeRDP_RedirectionFlags, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_RedirectionFlags" },
374
  { FreeRDP_RedirectionGuidLength, FREERDP_SETTINGS_TYPE_UINT32,
375
    "FreeRDP_RedirectionGuidLength" },
376
  { FreeRDP_RedirectionPasswordLength, FREERDP_SETTINGS_TYPE_UINT32,
377
    "FreeRDP_RedirectionPasswordLength" },
378
  { FreeRDP_RedirectionPreferType, FREERDP_SETTINGS_TYPE_UINT32,
379
    "FreeRDP_RedirectionPreferType" },
380
  { FreeRDP_RedirectionTsvUrlLength, FREERDP_SETTINGS_TYPE_UINT32,
381
    "FreeRDP_RedirectionTsvUrlLength" },
382
  { FreeRDP_RemoteAppNumIconCacheEntries, FREERDP_SETTINGS_TYPE_UINT32,
383
    "FreeRDP_RemoteAppNumIconCacheEntries" },
384
  { FreeRDP_RemoteAppNumIconCaches, FREERDP_SETTINGS_TYPE_UINT32,
385
    "FreeRDP_RemoteAppNumIconCaches" },
386
  { FreeRDP_RemoteApplicationExpandCmdLine, FREERDP_SETTINGS_TYPE_UINT32,
387
    "FreeRDP_RemoteApplicationExpandCmdLine" },
388
  { FreeRDP_RemoteApplicationExpandWorkingDir, FREERDP_SETTINGS_TYPE_UINT32,
389
    "FreeRDP_RemoteApplicationExpandWorkingDir" },
390
  { FreeRDP_RemoteApplicationSupportLevel, FREERDP_SETTINGS_TYPE_UINT32,
391
    "FreeRDP_RemoteApplicationSupportLevel" },
392
  { FreeRDP_RemoteApplicationSupportMask, FREERDP_SETTINGS_TYPE_UINT32,
393
    "FreeRDP_RemoteApplicationSupportMask" },
394
  { FreeRDP_RemoteFxCaptureFlags, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_RemoteFxCaptureFlags" },
395
  { FreeRDP_RemoteFxCodecId, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_RemoteFxCodecId" },
396
  { FreeRDP_RemoteFxCodecMode, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_RemoteFxCodecMode" },
397
  { FreeRDP_RemoteWndSupportLevel, FREERDP_SETTINGS_TYPE_UINT32,
398
    "FreeRDP_RemoteWndSupportLevel" },
399
  { FreeRDP_RequestedProtocols, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_RequestedProtocols" },
400
  { FreeRDP_SelectedProtocol, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_SelectedProtocol" },
401
  { FreeRDP_ServerCertificateLength, FREERDP_SETTINGS_TYPE_UINT32,
402
    "FreeRDP_ServerCertificateLength" },
403
  { FreeRDP_ServerLicenseProductIssuersCount, FREERDP_SETTINGS_TYPE_UINT32,
404
    "FreeRDP_ServerLicenseProductIssuersCount" },
405
  { FreeRDP_ServerLicenseProductVersion, FREERDP_SETTINGS_TYPE_UINT32,
406
    "FreeRDP_ServerLicenseProductVersion" },
407
  { FreeRDP_ServerPort, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_ServerPort" },
408
  { FreeRDP_ServerRandomLength, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_ServerRandomLength" },
409
  { FreeRDP_ShareId, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_ShareId" },
410
  { FreeRDP_SmartSizingHeight, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_SmartSizingHeight" },
411
  { FreeRDP_SmartSizingWidth, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_SmartSizingWidth" },
412
  { FreeRDP_StaticChannelArraySize, FREERDP_SETTINGS_TYPE_UINT32,
413
    "FreeRDP_StaticChannelArraySize" },
414
  { FreeRDP_StaticChannelCount, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_StaticChannelCount" },
415
  { FreeRDP_TargetNetAddressCount, FREERDP_SETTINGS_TYPE_UINT32,
416
    "FreeRDP_TargetNetAddressCount" },
417
  { FreeRDP_TcpAckTimeout, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_TcpAckTimeout" },
418
  { FreeRDP_TcpConnectTimeout, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_TcpConnectTimeout" },
419
  { FreeRDP_TcpKeepAliveDelay, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_TcpKeepAliveDelay" },
420
  { FreeRDP_TcpKeepAliveInterval, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_TcpKeepAliveInterval" },
421
  { FreeRDP_TcpKeepAliveRetries, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_TcpKeepAliveRetries" },
422
  { FreeRDP_ThreadingFlags, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_ThreadingFlags" },
423
  { FreeRDP_TlsSecLevel, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_TlsSecLevel" },
424
  { FreeRDP_VirtualChannelChunkSize, FREERDP_SETTINGS_TYPE_UINT32,
425
    "FreeRDP_VirtualChannelChunkSize" },
426
  { FreeRDP_VirtualChannelCompressionFlags, FREERDP_SETTINGS_TYPE_UINT32,
427
    "FreeRDP_VirtualChannelCompressionFlags" },
428
  { FreeRDP_XPan, FREERDP_SETTINGS_TYPE_INT32, "FreeRDP_XPan" },
429
  { FreeRDP_YPan, FREERDP_SETTINGS_TYPE_INT32, "FreeRDP_YPan" },
430
  { FreeRDP_ParentWindowId, FREERDP_SETTINGS_TYPE_UINT64, "FreeRDP_ParentWindowId" },
431
  { FreeRDP_AcceptedCert, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_AcceptedCert" },
432
  { FreeRDP_ActionScript, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_ActionScript" },
433
  { FreeRDP_AllowedTlsCiphers, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_AllowedTlsCiphers" },
434
  { FreeRDP_AlternateShell, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_AlternateShell" },
435
  { FreeRDP_AssistanceFile, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_AssistanceFile" },
436
  { FreeRDP_AuthenticationPackageList, FREERDP_SETTINGS_TYPE_STRING,
437
    "FreeRDP_AuthenticationPackageList" },
438
  { FreeRDP_AuthenticationServiceClass, FREERDP_SETTINGS_TYPE_STRING,
439
    "FreeRDP_AuthenticationServiceClass" },
440
  { FreeRDP_BitmapCachePersistFile, FREERDP_SETTINGS_TYPE_STRING,
441
    "FreeRDP_BitmapCachePersistFile" },
442
  { FreeRDP_CardName, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_CardName" },
443
  { FreeRDP_CertificateAcceptedFingerprints, FREERDP_SETTINGS_TYPE_STRING,
444
    "FreeRDP_CertificateAcceptedFingerprints" },
445
  { FreeRDP_CertificateName, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_CertificateName" },
446
  { FreeRDP_ClientAddress, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_ClientAddress" },
447
  { FreeRDP_ClientDir, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_ClientDir" },
448
  { FreeRDP_ClientHostname, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_ClientHostname" },
449
  { FreeRDP_ClientProductId, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_ClientProductId" },
450
  { FreeRDP_ComputerName, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_ComputerName" },
451
  { FreeRDP_ConfigPath, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_ConfigPath" },
452
  { FreeRDP_ConnectionFile, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_ConnectionFile" },
453
  { FreeRDP_ContainerName, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_ContainerName" },
454
  { FreeRDP_CspName, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_CspName" },
455
  { FreeRDP_CurrentPath, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_CurrentPath" },
456
  { FreeRDP_Domain, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_Domain" },
457
  { FreeRDP_DrivesToRedirect, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_DrivesToRedirect" },
458
  { FreeRDP_DumpRemoteFxFile, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_DumpRemoteFxFile" },
459
  { FreeRDP_DynamicDSTTimeZoneKeyName, FREERDP_SETTINGS_TYPE_STRING,
460
    "FreeRDP_DynamicDSTTimeZoneKeyName" },
461
  { FreeRDP_GatewayAcceptedCert, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_GatewayAcceptedCert" },
462
  { FreeRDP_GatewayAccessToken, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_GatewayAccessToken" },
463
  { FreeRDP_GatewayAvdAadtenantid, FREERDP_SETTINGS_TYPE_STRING,
464
    "FreeRDP_GatewayAvdAadtenantid" },
465
  { FreeRDP_GatewayAvdActivityhint, FREERDP_SETTINGS_TYPE_STRING,
466
    "FreeRDP_GatewayAvdActivityhint" },
467
  { FreeRDP_GatewayAvdArmpath, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_GatewayAvdArmpath" },
468
  { FreeRDP_GatewayAvdDiagnosticserviceurl, FREERDP_SETTINGS_TYPE_STRING,
469
    "FreeRDP_GatewayAvdDiagnosticserviceurl" },
470
  { FreeRDP_GatewayAvdGeo, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_GatewayAvdGeo" },
471
  { FreeRDP_GatewayAvdHubdiscoverygeourl, FREERDP_SETTINGS_TYPE_STRING,
472
    "FreeRDP_GatewayAvdHubdiscoverygeourl" },
473
  { FreeRDP_GatewayAvdWvdEndpointPool, FREERDP_SETTINGS_TYPE_STRING,
474
    "FreeRDP_GatewayAvdWvdEndpointPool" },
475
  { FreeRDP_GatewayDomain, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_GatewayDomain" },
476
  { FreeRDP_GatewayHostname, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_GatewayHostname" },
477
  { FreeRDP_GatewayHttpExtAuthBearer, FREERDP_SETTINGS_TYPE_STRING,
478
    "FreeRDP_GatewayHttpExtAuthBearer" },
479
  { FreeRDP_GatewayPassword, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_GatewayPassword" },
480
  { FreeRDP_GatewayUrl, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_GatewayUrl" },
481
  { FreeRDP_GatewayUsername, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_GatewayUsername" },
482
  { FreeRDP_HomePath, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_HomePath" },
483
  { FreeRDP_ImeFileName, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_ImeFileName" },
484
  { FreeRDP_KerberosArmor, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_KerberosArmor" },
485
  { FreeRDP_KerberosCache, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_KerberosCache" },
486
  { FreeRDP_KerberosKdcUrl, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_KerberosKdcUrl" },
487
  { FreeRDP_KerberosKeytab, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_KerberosKeytab" },
488
  { FreeRDP_KerberosLifeTime, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_KerberosLifeTime" },
489
  { FreeRDP_KerberosRealm, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_KerberosRealm" },
490
  { FreeRDP_KerberosRenewableLifeTime, FREERDP_SETTINGS_TYPE_STRING,
491
    "FreeRDP_KerberosRenewableLifeTime" },
492
  { FreeRDP_KerberosStartTime, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_KerberosStartTime" },
493
  { FreeRDP_KeyboardPipeName, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_KeyboardPipeName" },
494
  { FreeRDP_KeyboardRemappingList, FREERDP_SETTINGS_TYPE_STRING,
495
    "FreeRDP_KeyboardRemappingList" },
496
  { FreeRDP_NtlmSamFile, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_NtlmSamFile" },
497
  { FreeRDP_Password, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_Password" },
498
  { FreeRDP_PasswordHash, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_PasswordHash" },
499
  { FreeRDP_Pkcs11Module, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_Pkcs11Module" },
500
  { FreeRDP_PkinitAnchors, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_PkinitAnchors" },
501
  { FreeRDP_PlayRemoteFxFile, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_PlayRemoteFxFile" },
502
  { FreeRDP_PreconnectionBlob, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_PreconnectionBlob" },
503
  { FreeRDP_ProxyHostname, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_ProxyHostname" },
504
  { FreeRDP_ProxyPassword, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_ProxyPassword" },
505
  { FreeRDP_ProxyUsername, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_ProxyUsername" },
506
  { FreeRDP_RDP2TCPArgs, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_RDP2TCPArgs" },
507
  { FreeRDP_ReaderName, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_ReaderName" },
508
  { FreeRDP_RedirectionAcceptedCert, FREERDP_SETTINGS_TYPE_STRING,
509
    "FreeRDP_RedirectionAcceptedCert" },
510
  { FreeRDP_RedirectionDomain, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_RedirectionDomain" },
511
  { FreeRDP_RedirectionTargetFQDN, FREERDP_SETTINGS_TYPE_STRING,
512
    "FreeRDP_RedirectionTargetFQDN" },
513
  { FreeRDP_RedirectionTargetNetBiosName, FREERDP_SETTINGS_TYPE_STRING,
514
    "FreeRDP_RedirectionTargetNetBiosName" },
515
  { FreeRDP_RedirectionUsername, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_RedirectionUsername" },
516
  { FreeRDP_RemoteApplicationCmdLine, FREERDP_SETTINGS_TYPE_STRING,
517
    "FreeRDP_RemoteApplicationCmdLine" },
518
  { FreeRDP_RemoteApplicationFile, FREERDP_SETTINGS_TYPE_STRING,
519
    "FreeRDP_RemoteApplicationFile" },
520
  { FreeRDP_RemoteApplicationGuid, FREERDP_SETTINGS_TYPE_STRING,
521
    "FreeRDP_RemoteApplicationGuid" },
522
  { FreeRDP_RemoteApplicationIcon, FREERDP_SETTINGS_TYPE_STRING,
523
    "FreeRDP_RemoteApplicationIcon" },
524
  { FreeRDP_RemoteApplicationName, FREERDP_SETTINGS_TYPE_STRING,
525
    "FreeRDP_RemoteApplicationName" },
526
  { FreeRDP_RemoteApplicationProgram, FREERDP_SETTINGS_TYPE_STRING,
527
    "FreeRDP_RemoteApplicationProgram" },
528
  { FreeRDP_RemoteApplicationWorkingDir, FREERDP_SETTINGS_TYPE_STRING,
529
    "FreeRDP_RemoteApplicationWorkingDir" },
530
  { FreeRDP_RemoteAssistancePassStub, FREERDP_SETTINGS_TYPE_STRING,
531
    "FreeRDP_RemoteAssistancePassStub" },
532
  { FreeRDP_RemoteAssistancePassword, FREERDP_SETTINGS_TYPE_STRING,
533
    "FreeRDP_RemoteAssistancePassword" },
534
  { FreeRDP_RemoteAssistanceRCTicket, FREERDP_SETTINGS_TYPE_STRING,
535
    "FreeRDP_RemoteAssistanceRCTicket" },
536
  { FreeRDP_RemoteAssistanceSessionId, FREERDP_SETTINGS_TYPE_STRING,
537
    "FreeRDP_RemoteAssistanceSessionId" },
538
  { FreeRDP_ServerHostname, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_ServerHostname" },
539
  { FreeRDP_ServerLicenseCompanyName, FREERDP_SETTINGS_TYPE_STRING,
540
    "FreeRDP_ServerLicenseCompanyName" },
541
  { FreeRDP_ServerLicenseProductName, FREERDP_SETTINGS_TYPE_STRING,
542
    "FreeRDP_ServerLicenseProductName" },
543
  { FreeRDP_ShellWorkingDirectory, FREERDP_SETTINGS_TYPE_STRING,
544
    "FreeRDP_ShellWorkingDirectory" },
545
  { FreeRDP_SmartcardCertificate, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_SmartcardCertificate" },
546
  { FreeRDP_SmartcardPrivateKey, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_SmartcardPrivateKey" },
547
  { FreeRDP_SspiModule, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_SspiModule" },
548
  { FreeRDP_TargetNetAddress, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_TargetNetAddress" },
549
  { FreeRDP_TerminalDescriptor, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_TerminalDescriptor" },
550
  { FreeRDP_TlsSecretsFile, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_TlsSecretsFile" },
551
  { FreeRDP_TransportDumpFile, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_TransportDumpFile" },
552
  { FreeRDP_UserSpecifiedServerName, FREERDP_SETTINGS_TYPE_STRING,
553
    "FreeRDP_UserSpecifiedServerName" },
554
  { FreeRDP_Username, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_Username" },
555
  { FreeRDP_WinSCardModule, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_WinSCardModule" },
556
  { FreeRDP_WindowTitle, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_WindowTitle" },
557
  { FreeRDP_WmClass, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_WmClass" },
558
  { FreeRDP_BitmapCacheV2CellInfo, FREERDP_SETTINGS_TYPE_POINTER,
559
    "FreeRDP_BitmapCacheV2CellInfo" },
560
  { FreeRDP_ChannelDefArray, FREERDP_SETTINGS_TYPE_POINTER, "FreeRDP_ChannelDefArray" },
561
  { FreeRDP_ClientAutoReconnectCookie, FREERDP_SETTINGS_TYPE_POINTER,
562
    "FreeRDP_ClientAutoReconnectCookie" },
563
  { FreeRDP_ClientRandom, FREERDP_SETTINGS_TYPE_POINTER, "FreeRDP_ClientRandom" },
564
  { FreeRDP_ClientTimeZone, FREERDP_SETTINGS_TYPE_POINTER, "FreeRDP_ClientTimeZone" },
565
  { FreeRDP_DeviceArray, FREERDP_SETTINGS_TYPE_POINTER, "FreeRDP_DeviceArray" },
566
  { FreeRDP_DynamicChannelArray, FREERDP_SETTINGS_TYPE_POINTER, "FreeRDP_DynamicChannelArray" },
567
  { FreeRDP_FragCache, FREERDP_SETTINGS_TYPE_POINTER, "FreeRDP_FragCache" },
568
  { FreeRDP_GlyphCache, FREERDP_SETTINGS_TYPE_POINTER, "FreeRDP_GlyphCache" },
569
  { FreeRDP_LoadBalanceInfo, FREERDP_SETTINGS_TYPE_POINTER, "FreeRDP_LoadBalanceInfo" },
570
  { FreeRDP_MonitorDefArray, FREERDP_SETTINGS_TYPE_POINTER, "FreeRDP_MonitorDefArray" },
571
  { FreeRDP_MonitorIds, FREERDP_SETTINGS_TYPE_POINTER, "FreeRDP_MonitorIds" },
572
  { FreeRDP_OrderSupport, FREERDP_SETTINGS_TYPE_POINTER, "FreeRDP_OrderSupport" },
573
  { FreeRDP_Password51, FREERDP_SETTINGS_TYPE_POINTER, "FreeRDP_Password51" },
574
  { FreeRDP_RdpServerCertificate, FREERDP_SETTINGS_TYPE_POINTER, "FreeRDP_RdpServerCertificate" },
575
  { FreeRDP_RdpServerRsaKey, FREERDP_SETTINGS_TYPE_POINTER, "FreeRDP_RdpServerRsaKey" },
576
  { FreeRDP_ReceivedCapabilities, FREERDP_SETTINGS_TYPE_POINTER, "FreeRDP_ReceivedCapabilities" },
577
  { FreeRDP_ReceivedCapabilityData, FREERDP_SETTINGS_TYPE_POINTER,
578
    "FreeRDP_ReceivedCapabilityData" },
579
  { FreeRDP_ReceivedCapabilityDataSizes, FREERDP_SETTINGS_TYPE_POINTER,
580
    "FreeRDP_ReceivedCapabilityDataSizes" },
581
  { FreeRDP_RedirectionGuid, FREERDP_SETTINGS_TYPE_POINTER, "FreeRDP_RedirectionGuid" },
582
  { FreeRDP_RedirectionPassword, FREERDP_SETTINGS_TYPE_POINTER, "FreeRDP_RedirectionPassword" },
583
  { FreeRDP_RedirectionTargetCertificate, FREERDP_SETTINGS_TYPE_POINTER,
584
    "FreeRDP_RedirectionTargetCertificate" },
585
  { FreeRDP_RedirectionTsvUrl, FREERDP_SETTINGS_TYPE_POINTER, "FreeRDP_RedirectionTsvUrl" },
586
  { FreeRDP_ServerAutoReconnectCookie, FREERDP_SETTINGS_TYPE_POINTER,
587
    "FreeRDP_ServerAutoReconnectCookie" },
588
  { FreeRDP_ServerCertificate, FREERDP_SETTINGS_TYPE_POINTER, "FreeRDP_ServerCertificate" },
589
  { FreeRDP_ServerLicenseProductIssuers, FREERDP_SETTINGS_TYPE_POINTER,
590
    "FreeRDP_ServerLicenseProductIssuers" },
591
  { FreeRDP_ServerRandom, FREERDP_SETTINGS_TYPE_POINTER, "FreeRDP_ServerRandom" },
592
  { FreeRDP_StaticChannelArray, FREERDP_SETTINGS_TYPE_POINTER, "FreeRDP_StaticChannelArray" },
593
  { FreeRDP_TargetNetAddresses, FREERDP_SETTINGS_TYPE_POINTER, "FreeRDP_TargetNetAddresses" },
594
  { FreeRDP_TargetNetPorts, FREERDP_SETTINGS_TYPE_POINTER, "FreeRDP_TargetNetPorts" },
595
  { FreeRDP_instance, FREERDP_SETTINGS_TYPE_POINTER, "FreeRDP_instance" },
596
};
597
598
BOOL freerdp_settings_clone_keys(rdpSettings* dst, const rdpSettings* src)
599
0
{
600
0
  size_t x;
601
602
0
  WINPR_ASSERT(dst);
603
0
  WINPR_ASSERT(src);
604
605
0
  for (x = 0; x < ARRAYSIZE(settings_map); x++)
606
0
  {
607
0
    const struct settings_str_entry* cur = &settings_map[x];
608
0
    switch (cur->type)
609
0
    {
610
0
      case 0: /* bool */
611
0
      {
612
0
        BOOL sval = freerdp_settings_get_bool(src, cur->id);
613
0
        if (!freerdp_settings_set_bool(dst, cur->id, sval))
614
0
          return FALSE;
615
0
      }
616
0
      break;
617
0
      case 1: /* UINT16 */
618
0
      {
619
0
        UINT16 sval = freerdp_settings_get_uint16(src, cur->id);
620
0
        if (!freerdp_settings_set_uint16(dst, cur->id, sval))
621
0
          return FALSE;
622
0
      }
623
0
      break;
624
0
      case 2: /* INT16 */
625
0
      {
626
0
        INT16 sval = freerdp_settings_get_int16(src, cur->id);
627
0
        if (!freerdp_settings_set_int16(dst, cur->id, sval))
628
0
          return FALSE;
629
0
      }
630
0
      break;
631
0
      case 3: /* UINT32 */
632
0
      {
633
0
        UINT32 sval = freerdp_settings_get_uint32(src, cur->id);
634
0
        if (!freerdp_settings_set_uint32(dst, cur->id, sval))
635
0
          return FALSE;
636
0
      }
637
0
      break;
638
0
      case 4: /* INT32 */
639
0
      {
640
0
        INT32 sval = freerdp_settings_get_int32(src, cur->id);
641
0
        if (!freerdp_settings_set_int32(dst, cur->id, sval))
642
0
          return FALSE;
643
0
      }
644
0
      break;
645
0
      case 5: /* UINT64 */
646
0
      {
647
0
        UINT64 sval = freerdp_settings_get_uint64(src, cur->id);
648
0
        if (!freerdp_settings_set_uint64(dst, cur->id, sval))
649
0
          return FALSE;
650
0
      }
651
0
      break;
652
0
      case 6: /* INT64 */
653
0
      {
654
0
        INT64 sval = freerdp_settings_get_int64(src, cur->id);
655
0
        if (!freerdp_settings_set_int64(dst, cur->id, sval))
656
0
          return FALSE;
657
0
      }
658
0
      break;
659
0
      case 7: /* strings */
660
0
      {
661
0
        const char* sval = freerdp_settings_get_string(src, cur->id);
662
0
        size_t len = 0;
663
0
        if (sval)
664
0
          len = strlen(sval);
665
0
        if (!freerdp_settings_set_string_copy_(dst, cur->id, sval, len, FALSE))
666
0
          return FALSE;
667
0
      }
668
0
      break;
669
0
      case 8: /* pointer */
670
0
      {
671
0
        const void* sval = freerdp_settings_get_pointer(src, cur->id);
672
0
        if (!freerdp_settings_set_pointer(dst, cur->id, sval))
673
0
          return FALSE;
674
0
      }
675
0
      break;
676
0
    }
677
0
  }
678
0
  return TRUE;
679
0
}
680
681
BOOL freerdp_settings_print_diff(wLog* log, DWORD level, const rdpSettings* settings,
682
                                 const rdpSettings* other)
683
0
{
684
0
  BOOL rc = FALSE;
685
0
  size_t x;
686
687
0
  WINPR_ASSERT(log);
688
0
  WINPR_ASSERT(settings);
689
0
  WINPR_ASSERT(other);
690
691
0
  for (x = 0; x < ARRAYSIZE(settings_map); x++)
692
0
  {
693
0
    const struct settings_str_entry* cur = &settings_map[x];
694
0
    switch (cur->type)
695
0
    {
696
0
      case 0: /* bool */
697
0
      {
698
0
        BOOL sval = freerdp_settings_get_bool(settings, cur->id);
699
0
        BOOL cval = freerdp_settings_get_bool(other, cur->id);
700
0
        if (sval != cval)
701
0
        {
702
0
          rc = TRUE;
703
0
          WLog_Print(log, level, "%s [BOOL]: %s -> %s", cur->str, sval ? "TRUE" : "FALSE",
704
0
                     cval ? "TRUE" : "FALSE");
705
0
        }
706
0
      }
707
0
      break;
708
0
      case 1: /* UINT16 */
709
0
      {
710
0
        UINT16 sval = freerdp_settings_get_uint16(settings, cur->id);
711
0
        UINT16 cval = freerdp_settings_get_uint16(other, cur->id);
712
0
        if (sval != cval)
713
0
        {
714
0
          rc = TRUE;
715
0
          WLog_Print(log, level, "%s [UINT16]: %" PRIu16 " -> %" PRIu16, cur->str, sval,
716
0
                     cval);
717
0
        }
718
0
      }
719
0
      break;
720
0
      case 2: /* INT16 */
721
0
      {
722
0
        INT16 sval = freerdp_settings_get_int16(settings, cur->id);
723
0
        INT16 cval = freerdp_settings_get_int16(other, cur->id);
724
0
        if (sval != cval)
725
0
        {
726
0
          rc = TRUE;
727
0
          WLog_Print(log, level, "%s [INT16]: %" PRId16 " -> %" PRId16, cur->str, sval,
728
0
                     cval);
729
0
        }
730
0
      }
731
0
      break;
732
0
      case 3: /* UINT32 */
733
0
      {
734
0
        UINT32 sval = freerdp_settings_get_uint32(settings, cur->id);
735
0
        UINT32 cval = freerdp_settings_get_uint32(other, cur->id);
736
0
        if (sval != cval)
737
0
        {
738
0
          rc = TRUE;
739
0
          WLog_Print(log, level, "%s [UINT32]: %" PRIu32 " -> %" PRIu32, cur->str, sval,
740
0
                     cval);
741
0
        }
742
0
      }
743
0
      break;
744
0
      case 4: /* INT32 */
745
0
      {
746
0
        INT32 sval = freerdp_settings_get_int32(settings, cur->id);
747
0
        INT32 cval = freerdp_settings_get_int32(other, cur->id);
748
0
        if (sval != cval)
749
0
        {
750
0
          rc = TRUE;
751
0
          WLog_Print(log, level, "%s [INT32]: %" PRId32 " -> %" PRId32, cur->str, sval,
752
0
                     cval);
753
0
        }
754
0
      }
755
0
      break;
756
0
      case 5: /* UINT64 */
757
0
      {
758
0
        UINT64 sval = freerdp_settings_get_uint64(settings, cur->id);
759
0
        UINT64 cval = freerdp_settings_get_uint64(other, cur->id);
760
0
        if (sval != cval)
761
0
        {
762
0
          rc = TRUE;
763
0
          WLog_Print(log, level, "%s [UINT64]: %" PRIu64 " -> %" PRIu64, cur->str, sval,
764
0
                     cval);
765
0
        }
766
0
      }
767
0
      break;
768
0
      case 6: /* INT64 */
769
0
      {
770
0
        INT64 sval = freerdp_settings_get_int64(settings, cur->id);
771
0
        INT64 cval = freerdp_settings_get_int64(other, cur->id);
772
0
        if (sval != cval)
773
0
        {
774
0
          rc = TRUE;
775
0
          WLog_Print(log, level, "%s [INT64]: %" PRId64 " -> %" PRId64, cur->str, sval,
776
0
                     cval);
777
0
        }
778
0
      }
779
0
      break;
780
0
      case 7: /* strings */
781
0
      {
782
0
        const char* sval = freerdp_settings_get_string(settings, cur->id);
783
0
        const char* cval = freerdp_settings_get_string(other, cur->id);
784
0
        if (sval != cval)
785
0
        {
786
0
          if (!sval || !cval || (strcmp(sval, cval) != 0))
787
0
          {
788
0
            rc = TRUE;
789
0
            WLog_Print(log, level, "%s [STRING]: '%s' -> '%s'", cur->str, sval, cval);
790
0
          }
791
0
        }
792
0
      }
793
0
      break;
794
0
      case 8: /* pointer */
795
0
      {
796
0
        const void* sval = freerdp_settings_get_pointer(settings, cur->id);
797
0
        const void* cval = freerdp_settings_get_pointer(other, cur->id);
798
0
        if (sval != cval)
799
0
        {
800
0
          if ((sval && !cval) || (!sval && cval))
801
0
          {
802
0
            rc = TRUE;
803
0
            WLog_Print(log, level, "%s [POINTER]: '%p' -> '%p'", cur->str, sval, cval);
804
0
          }
805
0
        }
806
0
      }
807
0
      break;
808
0
    }
809
0
  }
810
0
  return rc;
811
0
}
812
813
void freerdp_settings_dump(wLog* log, DWORD level, const rdpSettings* settings)
814
0
{
815
0
  size_t x;
816
817
0
  WINPR_ASSERT(log);
818
0
  WINPR_ASSERT(settings);
819
820
0
  for (x = 0; x < ARRAYSIZE(settings_map); x++)
821
0
  {
822
0
    const struct settings_str_entry* cur = &settings_map[x];
823
0
    switch (cur->type)
824
0
    {
825
0
      case 0: /* bool */
826
0
      {
827
0
        BOOL sval = freerdp_settings_get_bool(settings, cur->id);
828
0
        WLog_Print(log, level, "%s [BOOL]: %s", cur->str, sval ? "TRUE" : "FALSE");
829
0
      }
830
0
      break;
831
0
      case 1: /* UINT16 */
832
0
      {
833
0
        UINT16 sval = freerdp_settings_get_uint16(settings, cur->id);
834
0
        WLog_Print(log, level, "%s [UINT16]: %" PRIu16, cur->str, sval);
835
0
      }
836
0
      break;
837
0
      case 2: /* INT16 */
838
0
      {
839
0
        INT16 sval = freerdp_settings_get_int16(settings, cur->id);
840
0
        WLog_Print(log, level, "%s [INT16]: %" PRId16, cur->str, sval);
841
0
      }
842
0
      break;
843
0
      case 3: /* UINT32 */
844
0
      {
845
0
        UINT32 sval = freerdp_settings_get_uint32(settings, cur->id);
846
0
        WLog_Print(log, level, "%s [UINT32]: %" PRIu32, cur->str, sval);
847
0
      }
848
0
      break;
849
0
      case 4: /* INT32 */
850
0
      {
851
0
        INT32 sval = freerdp_settings_get_int32(settings, cur->id);
852
0
        WLog_Print(log, level, "%s [INT32]: %" PRId32, cur->str, sval);
853
0
      }
854
0
      break;
855
0
      case 5: /* UINT64 */
856
0
      {
857
0
        UINT64 sval = freerdp_settings_get_uint64(settings, cur->id);
858
0
        WLog_Print(log, level, "%s [UINT64]: %" PRIu64, cur->str, sval);
859
0
      }
860
0
      break;
861
0
      case 6: /* INT64 */
862
0
      {
863
0
        INT64 sval = freerdp_settings_get_int64(settings, cur->id);
864
0
        WLog_Print(log, level, "%s [INT64]: %" PRId64, cur->str, sval);
865
0
      }
866
0
      break;
867
0
      case 7: /* strings */
868
0
      {
869
0
        const char* sval = freerdp_settings_get_string(settings, cur->id);
870
0
        WLog_Print(log, level, "%s [STRING]: '%s'", cur->str, sval);
871
0
      }
872
0
      break;
873
0
      case 8: /* pointer */
874
0
      {
875
0
        const void* sval = freerdp_settings_get_pointer(settings, cur->id);
876
0
        WLog_Print(log, level, "%s [POINTER]: '%p'", cur->str, sval);
877
0
      }
878
0
      break;
879
0
    }
880
0
  }
881
0
}
882
883
void freerdp_settings_free_keys(rdpSettings* dst, BOOL cleanup)
884
0
{
885
0
  size_t x;
886
887
0
  WINPR_ASSERT(dst);
888
889
0
  for (x = 0; x < ARRAYSIZE(settings_map); x++)
890
0
  {
891
0
    const struct settings_str_entry* cur = &settings_map[x];
892
0
    switch (cur->type)
893
0
    {
894
0
      case 7: /* strings */
895
0
        freerdp_settings_set_string_copy_(dst, cur->id, NULL, 0, cleanup);
896
0
        break;
897
0
      case 8: /* pointer */
898
0
        freerdp_settings_set_pointer_len(dst, cur->id, NULL, 0);
899
0
        break;
900
0
    }
901
0
  }
902
0
}
903
904
SSIZE_T freerdp_settings_get_key_for_name(const char* value)
905
0
{
906
0
  size_t x;
907
908
0
  WINPR_ASSERT(value);
909
910
0
  for (x = 0; x < ARRAYSIZE(settings_map); x++)
911
0
  {
912
0
    const struct settings_str_entry* cur = &settings_map[x];
913
0
    if (strcmp(value, cur->str) == 0)
914
0
      return cur->id;
915
0
  }
916
0
  return -1;
917
0
}
918
919
SSIZE_T freerdp_settings_get_type_for_name(const char* value)
920
0
{
921
0
  size_t x;
922
923
0
  WINPR_ASSERT(value);
924
925
0
  for (x = 0; x < ARRAYSIZE(settings_map); x++)
926
0
  {
927
0
    const struct settings_str_entry* cur = &settings_map[x];
928
0
    if (strcmp(value, cur->str) == 0)
929
0
      return cur->type;
930
0
  }
931
0
  return -1;
932
0
}
933
934
const char* freerdp_settings_get_type_name_for_key(size_t key)
935
0
{
936
0
  const SSIZE_T type = freerdp_settings_get_type_for_key(key);
937
0
  return freerdp_settings_get_type_name_for_type(type);
938
0
}
939
940
const char* freerdp_settings_get_type_name_for_type(SSIZE_T type)
941
0
{
942
0
  switch (type)
943
0
  {
944
0
    case FREERDP_SETTINGS_TYPE_BOOL:
945
0
      return "FREERDP_SETTINGS_TYPE_BOOL";
946
0
    case FREERDP_SETTINGS_TYPE_UINT16:
947
0
      return "FREERDP_SETTINGS_TYPE_UINT16";
948
0
    case FREERDP_SETTINGS_TYPE_INT16:
949
0
      return "FREERDP_SETTINGS_TYPE_INT16";
950
0
    case FREERDP_SETTINGS_TYPE_UINT32:
951
0
      return "FREERDP_SETTINGS_TYPE_UINT32";
952
0
    case FREERDP_SETTINGS_TYPE_INT32:
953
0
      return "FREERDP_SETTINGS_TYPE_INT32";
954
0
    case FREERDP_SETTINGS_TYPE_UINT64:
955
0
      return "FREERDP_SETTINGS_TYPE_UINT64";
956
0
    case FREERDP_SETTINGS_TYPE_INT64:
957
0
      return "FREERDP_SETTINGS_TYPE_INT64";
958
0
    case FREERDP_SETTINGS_TYPE_STRING:
959
0
      return "FREERDP_SETTINGS_TYPE_STRING";
960
0
    case FREERDP_SETTINGS_TYPE_POINTER:
961
0
      return "FREERDP_SETTINGS_TYPE_POINTER";
962
0
    default:
963
0
      return "FREERDP_SETTINGS_TYPE_UNKNOWN";
964
0
  }
965
0
}
966
967
SSIZE_T freerdp_settings_get_type_for_key(size_t key)
968
0
{
969
0
  size_t x;
970
971
0
  for (x = 0; x < ARRAYSIZE(settings_map); x++)
972
0
  {
973
0
    const struct settings_str_entry* cur = &settings_map[x];
974
0
    if (cur->id == key)
975
0
      return cur->type;
976
0
  }
977
0
  return -1;
978
0
}
979
980
const char* freerdp_settings_get_name_for_key(size_t key)
981
0
{
982
0
  size_t x;
983
984
0
  for (x = 0; x < ARRAYSIZE(settings_map); x++)
985
0
  {
986
0
    const struct settings_str_entry* cur = &settings_map[x];
987
0
    if (cur->id == key)
988
0
      return cur->str;
989
0
  }
990
0
  return NULL;
991
0
}