Coverage Report

Created: 2026-02-26 06:54

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/FreeRDP/libfreerdp/common/settings_getters.c
Line
Count
Source
1
/* Generated by  */
2
3
#include "../core/settings.h"
4
5
#include <winpr/assert.h>
6
#include <freerdp/settings.h>
7
#include <freerdp/log.h>
8
9
#define TAG FREERDP_TAG("common.settings")
10
11
static void free_string(char** current, BOOL cleanup)
12
11.6M
{
13
11.6M
  if (cleanup)
14
10.0M
  {
15
10.0M
    if (*current)
16
1.09M
      memset(*current, 0, strlen(*current));
17
10.0M
    free(*current);
18
10.0M
    (*current) = NULL;
19
10.0M
  }
20
11.6M
}
21
22
static BOOL alloc_empty_string(char** current, const char* next, size_t next_len)
23
11.6M
{
24
11.6M
  if (!next && (next_len > 0))
25
0
  {
26
0
    *current = calloc(next_len, 1);
27
0
    return (*current != NULL);
28
0
  }
29
11.6M
  return FALSE;
30
11.6M
}
31
32
static BOOL update_string_copy_(char** current, const char* next, size_t next_len, BOOL cleanup)
33
11.5M
{
34
11.5M
  free_string(current, cleanup);
35
36
11.5M
  if (alloc_empty_string(current, next, next_len))
37
0
    return TRUE;
38
39
11.5M
  *current = (next ? strndup(next, next_len) : NULL);
40
11.5M
  return !next || (*current != NULL);
41
11.5M
}
42
43
static BOOL update_string_(char** current, char* next, size_t next_len)
44
43.5k
{
45
43.5k
  free_string(current, TRUE);
46
47
43.5k
  if (alloc_empty_string(current, next, next_len))
48
0
    return TRUE;
49
50
43.5k
  *current = next;
51
43.5k
  return !next || (*current != NULL);
52
43.5k
}
53
54
BOOL freerdp_settings_get_bool(WINPR_ATTR_UNUSED const rdpSettings* settings,
55
                               WINPR_ATTR_UNUSED FreeRDP_Settings_Keys_Bool id)
56
3.43M
{
57
3.43M
  WINPR_ASSERT(settings);
58
59
3.43M
  switch (id)
60
3.43M
  {
61
14.4k
    case FreeRDP_AadSecurity:
62
14.4k
      return settings->AadSecurity;
63
64
14.4k
    case FreeRDP_AllowCacheWaitingList:
65
14.4k
      return settings->AllowCacheWaitingList;
66
67
14.4k
    case FreeRDP_AllowDesktopComposition:
68
14.4k
      return settings->AllowDesktopComposition;
69
70
14.4k
    case FreeRDP_AllowFontSmoothing:
71
14.4k
      return settings->AllowFontSmoothing;
72
73
14.4k
    case FreeRDP_AllowUnanouncedOrdersFromServer:
74
14.4k
      return settings->AllowUnanouncedOrdersFromServer;
75
76
14.4k
    case FreeRDP_AltSecFrameMarkerSupport:
77
14.4k
      return settings->AltSecFrameMarkerSupport;
78
79
14.4k
    case FreeRDP_AsyncChannels:
80
14.4k
      return settings->AsyncChannels;
81
82
14.4k
    case FreeRDP_AsyncUpdate:
83
14.4k
      return settings->AsyncUpdate;
84
85
14.4k
    case FreeRDP_AudioCapture:
86
14.4k
      return settings->AudioCapture;
87
88
14.4k
    case FreeRDP_AudioPlayback:
89
14.4k
      return settings->AudioPlayback;
90
91
14.4k
    case FreeRDP_Authentication:
92
14.4k
      return settings->Authentication;
93
94
14.4k
    case FreeRDP_AuthenticationOnly:
95
14.4k
      return settings->AuthenticationOnly;
96
97
14.4k
    case FreeRDP_AutoAcceptCertificate:
98
14.4k
      return settings->AutoAcceptCertificate;
99
100
14.4k
    case FreeRDP_AutoDenyCertificate:
101
14.4k
      return settings->AutoDenyCertificate;
102
103
14.4k
    case FreeRDP_AutoLogonEnabled:
104
14.4k
      return settings->AutoLogonEnabled;
105
106
14.4k
    case FreeRDP_AutoReconnectionEnabled:
107
14.4k
      return settings->AutoReconnectionEnabled;
108
109
14.4k
    case FreeRDP_AutoReconnectionPacketSupported:
110
14.4k
      return settings->AutoReconnectionPacketSupported;
111
112
251k
    case FreeRDP_BitmapCacheEnabled:
113
251k
      return settings->BitmapCacheEnabled;
114
115
22.2k
    case FreeRDP_BitmapCachePersistEnabled:
116
22.2k
      return settings->BitmapCachePersistEnabled;
117
118
14.4k
    case FreeRDP_BitmapCacheV3Enabled:
119
14.4k
      return settings->BitmapCacheV3Enabled;
120
121
14.4k
    case FreeRDP_BitmapCompressionDisabled:
122
14.4k
      return settings->BitmapCompressionDisabled;
123
124
14.4k
    case FreeRDP_CertificateCallbackPreferPEM:
125
14.4k
      return settings->CertificateCallbackPreferPEM;
126
127
14.4k
    case FreeRDP_CompressionEnabled:
128
14.4k
      return settings->CompressionEnabled;
129
130
14.4k
    case FreeRDP_ConnectChildSession:
131
14.4k
      return settings->ConnectChildSession;
132
133
14.4k
    case FreeRDP_ConsoleSession:
134
14.4k
      return settings->ConsoleSession;
135
136
14.4k
    case FreeRDP_CredentialsFromStdin:
137
14.4k
      return settings->CredentialsFromStdin;
138
139
42.7k
    case FreeRDP_DeactivateClientDecoding:
140
42.7k
      return settings->DeactivateClientDecoding;
141
142
14.4k
    case FreeRDP_Decorations:
143
14.4k
      return settings->Decorations;
144
145
14.4k
    case FreeRDP_DesktopResize:
146
14.4k
      return settings->DesktopResize;
147
148
14.4k
    case FreeRDP_DeviceRedirection:
149
14.4k
      return settings->DeviceRedirection;
150
151
14.4k
    case FreeRDP_DisableCredentialsDelegation:
152
14.4k
      return settings->DisableCredentialsDelegation;
153
154
14.4k
    case FreeRDP_DisableCtrlAltDel:
155
14.4k
      return settings->DisableCtrlAltDel;
156
157
14.4k
    case FreeRDP_DisableCursorBlinking:
158
14.4k
      return settings->DisableCursorBlinking;
159
160
14.4k
    case FreeRDP_DisableCursorShadow:
161
14.4k
      return settings->DisableCursorShadow;
162
163
14.4k
    case FreeRDP_DisableFullWindowDrag:
164
14.4k
      return settings->DisableFullWindowDrag;
165
166
14.4k
    case FreeRDP_DisableMenuAnims:
167
14.4k
      return settings->DisableMenuAnims;
168
169
14.4k
    case FreeRDP_DisableRemoteAppCapsCheck:
170
14.4k
      return settings->DisableRemoteAppCapsCheck;
171
172
14.4k
    case FreeRDP_DisableThemes:
173
14.4k
      return settings->DisableThemes;
174
175
14.4k
    case FreeRDP_DisableWallpaper:
176
14.4k
      return settings->DisableWallpaper;
177
178
14.4k
    case FreeRDP_DrawAllowColorSubsampling:
179
14.4k
      return settings->DrawAllowColorSubsampling;
180
181
14.4k
    case FreeRDP_DrawAllowDynamicColorFidelity:
182
14.4k
      return settings->DrawAllowDynamicColorFidelity;
183
184
14.4k
    case FreeRDP_DrawAllowSkipAlpha:
185
14.4k
      return settings->DrawAllowSkipAlpha;
186
187
14.4k
    case FreeRDP_DrawGdiPlusCacheEnabled:
188
14.4k
      return settings->DrawGdiPlusCacheEnabled;
189
190
14.4k
    case FreeRDP_DrawGdiPlusEnabled:
191
14.4k
      return settings->DrawGdiPlusEnabled;
192
193
14.4k
    case FreeRDP_DrawNineGridEnabled:
194
14.4k
      return settings->DrawNineGridEnabled;
195
196
14.4k
    case FreeRDP_DumpRemoteFx:
197
14.4k
      return settings->DumpRemoteFx;
198
199
14.4k
    case FreeRDP_DynamicDaylightTimeDisabled:
200
14.4k
      return settings->DynamicDaylightTimeDisabled;
201
202
14.4k
    case FreeRDP_DynamicResolutionUpdate:
203
14.4k
      return settings->DynamicResolutionUpdate;
204
205
14.4k
    case FreeRDP_EmbeddedWindow:
206
14.4k
      return settings->EmbeddedWindow;
207
208
14.4k
    case FreeRDP_EnableWindowsKey:
209
14.4k
      return settings->EnableWindowsKey;
210
211
14.4k
    case FreeRDP_EncomspVirtualChannel:
212
14.4k
      return settings->EncomspVirtualChannel;
213
214
14.4k
    case FreeRDP_ExtSecurity:
215
14.4k
      return settings->ExtSecurity;
216
217
14.4k
    case FreeRDP_ExternalCertificateManagement:
218
14.4k
      return settings->ExternalCertificateManagement;
219
220
14.4k
    case FreeRDP_FIPSMode:
221
14.4k
      return settings->FIPSMode;
222
223
14.4k
    case FreeRDP_FastPathInput:
224
14.4k
      return settings->FastPathInput;
225
226
14.4k
    case FreeRDP_FastPathOutput:
227
14.4k
      return settings->FastPathOutput;
228
229
14.4k
    case FreeRDP_ForceEncryptedCsPdu:
230
14.4k
      return settings->ForceEncryptedCsPdu;
231
232
14.4k
    case FreeRDP_ForceMultimon:
233
14.4k
      return settings->ForceMultimon;
234
235
14.4k
    case FreeRDP_FrameMarkerCommandEnabled:
236
14.4k
      return settings->FrameMarkerCommandEnabled;
237
238
14.4k
    case FreeRDP_Fullscreen:
239
14.4k
      return settings->Fullscreen;
240
241
14.4k
    case FreeRDP_GatewayArmTransport:
242
14.4k
      return settings->GatewayArmTransport;
243
244
14.4k
    case FreeRDP_GatewayAvdUseTenantid:
245
14.4k
      return settings->GatewayAvdUseTenantid;
246
247
14.4k
    case FreeRDP_GatewayBypassLocal:
248
14.4k
      return settings->GatewayBypassLocal;
249
250
14.4k
    case FreeRDP_GatewayEnabled:
251
14.4k
      return settings->GatewayEnabled;
252
253
14.4k
    case FreeRDP_GatewayHttpExtAuthSspiNtlm:
254
14.4k
      return settings->GatewayHttpExtAuthSspiNtlm;
255
256
14.4k
    case FreeRDP_GatewayHttpTransport:
257
14.4k
      return settings->GatewayHttpTransport;
258
259
14.4k
    case FreeRDP_GatewayHttpUseWebsockets:
260
14.4k
      return settings->GatewayHttpUseWebsockets;
261
262
14.4k
    case FreeRDP_GatewayIgnoreRedirectionPolicy:
263
14.4k
      return settings->GatewayIgnoreRedirectionPolicy;
264
265
14.4k
    case FreeRDP_GatewayRpcTransport:
266
14.4k
      return settings->GatewayRpcTransport;
267
268
14.4k
    case FreeRDP_GatewayUdpTransport:
269
14.4k
      return settings->GatewayUdpTransport;
270
271
14.4k
    case FreeRDP_GatewayUseSameCredentials:
272
14.4k
      return settings->GatewayUseSameCredentials;
273
274
14.4k
    case FreeRDP_GfxAVC444:
275
14.4k
      return settings->GfxAVC444;
276
277
14.4k
    case FreeRDP_GfxAVC444v2:
278
14.4k
      return settings->GfxAVC444v2;
279
280
14.4k
    case FreeRDP_GfxH264:
281
14.4k
      return settings->GfxH264;
282
283
14.4k
    case FreeRDP_GfxPlanar:
284
14.4k
      return settings->GfxPlanar;
285
286
14.4k
    case FreeRDP_GfxProgressive:
287
14.4k
      return settings->GfxProgressive;
288
289
14.4k
    case FreeRDP_GfxProgressiveV2:
290
14.4k
      return settings->GfxProgressiveV2;
291
292
14.4k
    case FreeRDP_GfxSendQoeAck:
293
14.4k
      return settings->GfxSendQoeAck;
294
295
14.4k
    case FreeRDP_GfxSmallCache:
296
14.4k
      return settings->GfxSmallCache;
297
298
14.4k
    case FreeRDP_GfxSuspendFrameAck:
299
14.4k
      return settings->GfxSuspendFrameAck;
300
301
14.4k
    case FreeRDP_GfxThinClient:
302
14.4k
      return settings->GfxThinClient;
303
304
14.4k
    case FreeRDP_GrabKeyboard:
305
14.4k
      return settings->GrabKeyboard;
306
307
14.4k
    case FreeRDP_GrabMouse:
308
14.4k
      return settings->GrabMouse;
309
310
18.0k
    case FreeRDP_HasExtendedMouseEvent:
311
18.0k
      return settings->HasExtendedMouseEvent;
312
313
14.4k
    case FreeRDP_HasHorizontalWheel:
314
14.4k
      return settings->HasHorizontalWheel;
315
316
14.4k
    case FreeRDP_HasMonitorAttributes:
317
14.4k
      return settings->HasMonitorAttributes;
318
319
43.9k
    case FreeRDP_HasQoeEvent:
320
43.9k
      return settings->HasQoeEvent;
321
322
16.9k
    case FreeRDP_HasRelativeMouseEvent:
323
16.9k
      return settings->HasRelativeMouseEvent;
324
325
14.4k
    case FreeRDP_HiDefRemoteApp:
326
14.4k
      return settings->HiDefRemoteApp;
327
328
14.4k
    case FreeRDP_IPv6Enabled:
329
14.4k
      return settings->IPv6Enabled;
330
331
14.4k
    case FreeRDP_IgnoreCertificate:
332
14.4k
      return settings->IgnoreCertificate;
333
334
14.4k
    case FreeRDP_IgnoreInvalidDevices:
335
14.4k
      return settings->IgnoreInvalidDevices;
336
337
14.4k
    case FreeRDP_JpegCodec:
338
14.4k
      return settings->JpegCodec;
339
340
14.4k
    case FreeRDP_KerberosRdgIsProxy:
341
14.4k
      return settings->KerberosRdgIsProxy;
342
343
14.4k
    case FreeRDP_ListMonitors:
344
14.4k
      return settings->ListMonitors;
345
346
14.4k
    case FreeRDP_LocalConnection:
347
14.4k
      return settings->LocalConnection;
348
349
14.4k
    case FreeRDP_LogonErrors:
350
14.4k
      return settings->LogonErrors;
351
352
14.4k
    case FreeRDP_LogonNotify:
353
14.4k
      return settings->LogonNotify;
354
355
14.4k
    case FreeRDP_LongCredentialsSupported:
356
14.4k
      return settings->LongCredentialsSupported;
357
358
14.4k
    case FreeRDP_LyncRdpMode:
359
14.4k
      return settings->LyncRdpMode;
360
361
14.4k
    case FreeRDP_MaximizeShell:
362
14.4k
      return settings->MaximizeShell;
363
364
14.4k
    case FreeRDP_MouseAttached:
365
14.4k
      return settings->MouseAttached;
366
367
14.4k
    case FreeRDP_MouseHasWheel:
368
14.4k
      return settings->MouseHasWheel;
369
370
14.4k
    case FreeRDP_MouseMotion:
371
14.4k
      return settings->MouseMotion;
372
373
14.4k
    case FreeRDP_MouseUseRelativeMove:
374
14.4k
      return settings->MouseUseRelativeMove;
375
376
14.4k
    case FreeRDP_MstscCookieMode:
377
14.4k
      return settings->MstscCookieMode;
378
379
14.4k
    case FreeRDP_MultiTouchGestures:
380
14.4k
      return settings->MultiTouchGestures;
381
382
14.4k
    case FreeRDP_MultiTouchInput:
383
14.4k
      return settings->MultiTouchInput;
384
385
14.4k
    case FreeRDP_NSCodec:
386
14.4k
      return settings->NSCodec;
387
388
14.4k
    case FreeRDP_NSCodecAllowDynamicColorFidelity:
389
14.4k
      return settings->NSCodecAllowDynamicColorFidelity;
390
391
14.4k
    case FreeRDP_NSCodecAllowSubsampling:
392
14.4k
      return settings->NSCodecAllowSubsampling;
393
394
14.4k
    case FreeRDP_NegotiateSecurityLayer:
395
14.4k
      return settings->NegotiateSecurityLayer;
396
397
21.1k
    case FreeRDP_NetworkAutoDetect:
398
21.1k
      return settings->NetworkAutoDetect;
399
400
14.4k
    case FreeRDP_NlaSecurity:
401
14.4k
      return settings->NlaSecurity;
402
403
14.4k
    case FreeRDP_NoBitmapCompressionHeader:
404
14.4k
      return settings->NoBitmapCompressionHeader;
405
406
14.4k
    case FreeRDP_OldLicenseBehaviour:
407
14.4k
      return settings->OldLicenseBehaviour;
408
409
14.4k
    case FreeRDP_PasswordIsSmartcardPin:
410
14.4k
      return settings->PasswordIsSmartcardPin;
411
412
14.4k
    case FreeRDP_PercentScreenUseHeight:
413
14.4k
      return settings->PercentScreenUseHeight;
414
415
14.4k
    case FreeRDP_PercentScreenUseWidth:
416
14.4k
      return settings->PercentScreenUseWidth;
417
418
14.4k
    case FreeRDP_PlayRemoteFx:
419
14.4k
      return settings->PlayRemoteFx;
420
421
14.4k
    case FreeRDP_PreferIPv6OverIPv4:
422
14.4k
      return settings->PreferIPv6OverIPv4;
423
424
14.4k
    case FreeRDP_PrintReconnectCookie:
425
14.4k
      return settings->PrintReconnectCookie;
426
427
14.4k
    case FreeRDP_PromptForCredentials:
428
14.4k
      return settings->PromptForCredentials;
429
430
14.4k
    case FreeRDP_RdpSecurity:
431
14.4k
      return settings->RdpSecurity;
432
433
14.4k
    case FreeRDP_RdstlsSecurity:
434
14.4k
      return settings->RdstlsSecurity;
435
436
14.4k
    case FreeRDP_RedirectClipboard:
437
14.4k
      return settings->RedirectClipboard;
438
439
14.4k
    case FreeRDP_RedirectDrives:
440
14.4k
      return settings->RedirectDrives;
441
442
14.4k
    case FreeRDP_RedirectHomeDrive:
443
14.4k
      return settings->RedirectHomeDrive;
444
445
14.4k
    case FreeRDP_RedirectParallelPorts:
446
14.4k
      return settings->RedirectParallelPorts;
447
448
14.4k
    case FreeRDP_RedirectPrinters:
449
14.4k
      return settings->RedirectPrinters;
450
451
14.4k
    case FreeRDP_RedirectSerialPorts:
452
14.4k
      return settings->RedirectSerialPorts;
453
454
14.4k
    case FreeRDP_RedirectSmartCards:
455
14.4k
      return settings->RedirectSmartCards;
456
457
14.4k
    case FreeRDP_RedirectWebAuthN:
458
14.4k
      return settings->RedirectWebAuthN;
459
460
14.4k
    case FreeRDP_RefreshRect:
461
14.4k
      return settings->RefreshRect;
462
463
14.4k
    case FreeRDP_RemdeskVirtualChannel:
464
14.4k
      return settings->RemdeskVirtualChannel;
465
466
14.4k
    case FreeRDP_RemoteAppLanguageBarSupported:
467
14.4k
      return settings->RemoteAppLanguageBarSupported;
468
469
14.4k
    case FreeRDP_RemoteApplicationMode:
470
14.4k
      return settings->RemoteApplicationMode;
471
472
14.4k
    case FreeRDP_RemoteAssistanceMode:
473
14.4k
      return settings->RemoteAssistanceMode;
474
475
14.4k
    case FreeRDP_RemoteAssistanceRequestControl:
476
14.4k
      return settings->RemoteAssistanceRequestControl;
477
478
14.4k
    case FreeRDP_RemoteConsoleAudio:
479
14.4k
      return settings->RemoteConsoleAudio;
480
481
14.4k
    case FreeRDP_RemoteCredentialGuard:
482
14.4k
      return settings->RemoteCredentialGuard;
483
484
14.4k
    case FreeRDP_RemoteFxCodec:
485
14.4k
      return settings->RemoteFxCodec;
486
487
14.4k
    case FreeRDP_RemoteFxImageCodec:
488
14.4k
      return settings->RemoteFxImageCodec;
489
490
14.4k
    case FreeRDP_RemoteFxOnly:
491
14.4k
      return settings->RemoteFxOnly;
492
493
14.4k
    case FreeRDP_RestrictedAdminModeRequired:
494
14.4k
      return settings->RestrictedAdminModeRequired;
495
496
14.4k
    case FreeRDP_RestrictedAdminModeSupported:
497
14.4k
      return settings->RestrictedAdminModeSupported;
498
499
14.4k
    case FreeRDP_SaltedChecksum:
500
14.4k
      return settings->SaltedChecksum;
501
502
14.4k
    case FreeRDP_SendPreconnectionPdu:
503
14.4k
      return settings->SendPreconnectionPdu;
504
505
14.4k
    case FreeRDP_ServerLicenseRequired:
506
14.4k
      return settings->ServerLicenseRequired;
507
508
282k
    case FreeRDP_ServerMode:
509
282k
      return settings->ServerMode;
510
511
14.4k
    case FreeRDP_SmartSizing:
512
14.4k
      return settings->SmartSizing;
513
514
14.4k
    case FreeRDP_SmartcardEmulation:
515
14.4k
      return settings->SmartcardEmulation;
516
517
14.4k
    case FreeRDP_SmartcardLogon:
518
14.4k
      return settings->SmartcardLogon;
519
520
14.4k
    case FreeRDP_SoftwareGdi:
521
14.4k
      return settings->SoftwareGdi;
522
523
14.4k
    case FreeRDP_SoundBeepsEnabled:
524
14.4k
      return settings->SoundBeepsEnabled;
525
526
14.4k
    case FreeRDP_SpanMonitors:
527
14.4k
      return settings->SpanMonitors;
528
529
14.4k
    case FreeRDP_SupportAsymetricKeys:
530
14.4k
      return settings->SupportAsymetricKeys;
531
532
14.4k
    case FreeRDP_SupportDisplayControl:
533
14.4k
      return settings->SupportDisplayControl;
534
535
14.4k
    case FreeRDP_SupportDynamicChannels:
536
14.4k
      return settings->SupportDynamicChannels;
537
538
14.9k
    case FreeRDP_SupportDynamicTimeZone:
539
14.9k
      return settings->SupportDynamicTimeZone;
540
541
14.4k
    case FreeRDP_SupportEchoChannel:
542
14.4k
      return settings->SupportEchoChannel;
543
544
14.4k
    case FreeRDP_SupportEdgeActionV1:
545
14.4k
      return settings->SupportEdgeActionV1;
546
547
14.4k
    case FreeRDP_SupportEdgeActionV2:
548
14.4k
      return settings->SupportEdgeActionV2;
549
550
14.4k
    case FreeRDP_SupportErrorInfoPdu:
551
14.4k
      return settings->SupportErrorInfoPdu;
552
553
14.4k
    case FreeRDP_SupportGeometryTracking:
554
14.4k
      return settings->SupportGeometryTracking;
555
556
14.4k
    case FreeRDP_SupportGraphicsPipeline:
557
14.4k
      return settings->SupportGraphicsPipeline;
558
559
14.4k
    case FreeRDP_SupportHeartbeatPdu:
560
14.4k
      return settings->SupportHeartbeatPdu;
561
562
14.4k
    case FreeRDP_SupportMonitorLayoutPdu:
563
14.4k
      return settings->SupportMonitorLayoutPdu;
564
565
14.4k
    case FreeRDP_SupportMultitransport:
566
14.4k
      return settings->SupportMultitransport;
567
568
14.4k
    case FreeRDP_SupportSSHAgentChannel:
569
14.4k
      return settings->SupportSSHAgentChannel;
570
571
14.4k
    case FreeRDP_SupportSkipChannelJoin:
572
14.4k
      return settings->SupportSkipChannelJoin;
573
574
14.4k
    case FreeRDP_SupportStatusInfoPdu:
575
14.4k
      return settings->SupportStatusInfoPdu;
576
577
14.4k
    case FreeRDP_SupportVideoOptimized:
578
14.4k
      return settings->SupportVideoOptimized;
579
580
14.4k
    case FreeRDP_SuppressOutput:
581
14.4k
      return settings->SuppressOutput;
582
583
14.4k
    case FreeRDP_SurfaceCommandsEnabled:
584
14.4k
      return settings->SurfaceCommandsEnabled;
585
586
14.4k
    case FreeRDP_SurfaceFrameMarkerEnabled:
587
14.4k
      return settings->SurfaceFrameMarkerEnabled;
588
589
14.4k
    case FreeRDP_SuspendInput:
590
14.4k
      return settings->SuspendInput;
591
592
14.4k
    case FreeRDP_SynchronousDynamicChannels:
593
14.4k
      return settings->SynchronousDynamicChannels;
594
595
14.4k
    case FreeRDP_SynchronousStaticChannels:
596
14.4k
      return settings->SynchronousStaticChannels;
597
598
20.8k
    case FreeRDP_TcpKeepAlive:
599
20.8k
      return settings->TcpKeepAlive;
600
601
14.4k
    case FreeRDP_TlsSecurity:
602
14.4k
      return settings->TlsSecurity;
603
604
14.4k
    case FreeRDP_ToggleFullscreen:
605
14.4k
      return settings->ToggleFullscreen;
606
607
14.4k
    case FreeRDP_TransportDump:
608
14.4k
      return settings->TransportDump;
609
610
14.7k
    case FreeRDP_TransportDumpReplay:
611
14.7k
      return settings->TransportDumpReplay;
612
613
14.4k
    case FreeRDP_TransportDumpReplayNodelay:
614
14.4k
      return settings->TransportDumpReplayNodelay;
615
616
41.7k
    case FreeRDP_UnicodeInput:
617
41.7k
      return settings->UnicodeInput;
618
619
14.4k
    case FreeRDP_UnmapButtons:
620
14.4k
      return settings->UnmapButtons;
621
622
14.4k
    case FreeRDP_UseCommonStdioCallbacks:
623
14.4k
      return settings->UseCommonStdioCallbacks;
624
625
14.4k
    case FreeRDP_UseMultimon:
626
14.4k
      return settings->UseMultimon;
627
628
14.4k
    case FreeRDP_UseRdpSecurityLayer:
629
14.4k
      return settings->UseRdpSecurityLayer;
630
631
14.4k
    case FreeRDP_UsingSavedCredentials:
632
14.4k
      return settings->UsingSavedCredentials;
633
634
14.4k
    case FreeRDP_VideoDisable:
635
14.4k
      return settings->VideoDisable;
636
637
14.4k
    case FreeRDP_VmConnectMode:
638
14.4k
      return settings->VmConnectMode;
639
640
14.4k
    case FreeRDP_WaitForOutputBufferFlush:
641
14.4k
      return settings->WaitForOutputBufferFlush;
642
643
14.4k
    case FreeRDP_Workarea:
644
14.4k
      return settings->Workarea;
645
646
0
    default:
647
0
      WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
648
0
               freerdp_settings_get_type_name_for_key(id));
649
0
      WINPR_ASSERT(FALSE);
650
0
      return FALSE;
651
3.43M
  }
652
3.43M
}
653
654
BOOL freerdp_settings_set_bool(WINPR_ATTR_UNUSED rdpSettings* settings,
655
                               WINPR_ATTR_UNUSED FreeRDP_Settings_Keys_Bool id, BOOL val)
656
8.28M
{
657
8.28M
  union
658
8.28M
  {
659
8.28M
    void* v;
660
8.28M
    const void* cv;
661
8.28M
    BOOL c;
662
8.28M
    const BOOL cc;
663
8.28M
  } cnv;
664
8.28M
  WINPR_ASSERT(settings);
665
666
8.28M
  cnv.c = val;
667
668
8.28M
  switch (id)
669
8.28M
  {
670
72.1k
    case FreeRDP_AadSecurity:
671
72.1k
      settings->AadSecurity = cnv.c;
672
72.1k
      break;
673
674
72.1k
    case FreeRDP_AllowCacheWaitingList:
675
72.1k
      settings->AllowCacheWaitingList = cnv.c;
676
72.1k
      break;
677
678
72.6k
    case FreeRDP_AllowDesktopComposition:
679
72.6k
      settings->AllowDesktopComposition = cnv.c;
680
72.6k
      break;
681
682
72.6k
    case FreeRDP_AllowFontSmoothing:
683
72.6k
      settings->AllowFontSmoothing = cnv.c;
684
72.6k
      break;
685
686
14.4k
    case FreeRDP_AllowUnanouncedOrdersFromServer:
687
14.4k
      settings->AllowUnanouncedOrdersFromServer = cnv.c;
688
14.4k
      break;
689
690
14.4k
    case FreeRDP_AltSecFrameMarkerSupport:
691
14.4k
      settings->AltSecFrameMarkerSupport = cnv.c;
692
14.4k
      break;
693
694
14.4k
    case FreeRDP_AsyncChannels:
695
14.4k
      settings->AsyncChannels = cnv.c;
696
14.4k
      break;
697
698
14.4k
    case FreeRDP_AsyncUpdate:
699
14.4k
      settings->AsyncUpdate = cnv.c;
700
14.4k
      break;
701
702
14.4k
    case FreeRDP_AudioCapture:
703
14.4k
      settings->AudioCapture = cnv.c;
704
14.4k
      break;
705
706
14.4k
    case FreeRDP_AudioPlayback:
707
14.4k
      settings->AudioPlayback = cnv.c;
708
14.4k
      break;
709
710
72.1k
    case FreeRDP_Authentication:
711
72.1k
      settings->Authentication = cnv.c;
712
72.1k
      break;
713
714
72.1k
    case FreeRDP_AuthenticationOnly:
715
72.1k
      settings->AuthenticationOnly = cnv.c;
716
72.1k
      break;
717
718
14.4k
    case FreeRDP_AutoAcceptCertificate:
719
14.4k
      settings->AutoAcceptCertificate = cnv.c;
720
14.4k
      break;
721
722
14.4k
    case FreeRDP_AutoDenyCertificate:
723
14.4k
      settings->AutoDenyCertificate = cnv.c;
724
14.4k
      break;
725
726
14.4k
    case FreeRDP_AutoLogonEnabled:
727
14.4k
      settings->AutoLogonEnabled = cnv.c;
728
14.4k
      break;
729
730
72.1k
    case FreeRDP_AutoReconnectionEnabled:
731
72.1k
      settings->AutoReconnectionEnabled = cnv.c;
732
72.1k
      break;
733
734
14.4k
    case FreeRDP_AutoReconnectionPacketSupported:
735
14.4k
      settings->AutoReconnectionPacketSupported = cnv.c;
736
14.4k
      break;
737
738
26.8k
    case FreeRDP_BitmapCacheEnabled:
739
26.8k
      settings->BitmapCacheEnabled = cnv.c;
740
26.8k
      break;
741
742
29.1k
    case FreeRDP_BitmapCachePersistEnabled:
743
29.1k
      settings->BitmapCachePersistEnabled = cnv.c;
744
29.1k
      break;
745
746
14.4k
    case FreeRDP_BitmapCacheV3Enabled:
747
14.4k
      settings->BitmapCacheV3Enabled = cnv.c;
748
14.4k
      break;
749
750
14.4k
    case FreeRDP_BitmapCompressionDisabled:
751
14.4k
      settings->BitmapCompressionDisabled = cnv.c;
752
14.4k
      break;
753
754
72.1k
    case FreeRDP_CertificateCallbackPreferPEM:
755
72.1k
      settings->CertificateCallbackPreferPEM = cnv.c;
756
72.1k
      break;
757
758
72.1k
    case FreeRDP_CompressionEnabled:
759
72.1k
      settings->CompressionEnabled = cnv.c;
760
72.1k
      break;
761
762
14.4k
    case FreeRDP_ConnectChildSession:
763
14.4k
      settings->ConnectChildSession = cnv.c;
764
14.4k
      break;
765
766
14.4k
    case FreeRDP_ConsoleSession:
767
14.4k
      settings->ConsoleSession = cnv.c;
768
14.4k
      break;
769
770
72.1k
    case FreeRDP_CredentialsFromStdin:
771
72.1k
      settings->CredentialsFromStdin = cnv.c;
772
72.1k
      break;
773
774
14.4k
    case FreeRDP_DeactivateClientDecoding:
775
14.4k
      settings->DeactivateClientDecoding = cnv.c;
776
14.4k
      break;
777
778
72.1k
    case FreeRDP_Decorations:
779
72.1k
      settings->Decorations = cnv.c;
780
72.1k
      break;
781
782
72.1k
    case FreeRDP_DesktopResize:
783
72.1k
      settings->DesktopResize = cnv.c;
784
72.1k
      break;
785
786
14.4k
    case FreeRDP_DeviceRedirection:
787
14.4k
      settings->DeviceRedirection = cnv.c;
788
14.4k
      break;
789
790
72.1k
    case FreeRDP_DisableCredentialsDelegation:
791
72.1k
      settings->DisableCredentialsDelegation = cnv.c;
792
72.1k
      break;
793
794
14.4k
    case FreeRDP_DisableCtrlAltDel:
795
14.4k
      settings->DisableCtrlAltDel = cnv.c;
796
14.4k
      break;
797
798
14.4k
    case FreeRDP_DisableCursorBlinking:
799
14.4k
      settings->DisableCursorBlinking = cnv.c;
800
14.4k
      break;
801
802
14.4k
    case FreeRDP_DisableCursorShadow:
803
14.4k
      settings->DisableCursorShadow = cnv.c;
804
14.4k
      break;
805
806
72.6k
    case FreeRDP_DisableFullWindowDrag:
807
72.6k
      settings->DisableFullWindowDrag = cnv.c;
808
72.6k
      break;
809
810
72.6k
    case FreeRDP_DisableMenuAnims:
811
72.6k
      settings->DisableMenuAnims = cnv.c;
812
72.6k
      break;
813
814
14.4k
    case FreeRDP_DisableRemoteAppCapsCheck:
815
14.4k
      settings->DisableRemoteAppCapsCheck = cnv.c;
816
14.4k
      break;
817
818
72.6k
    case FreeRDP_DisableThemes:
819
72.6k
      settings->DisableThemes = cnv.c;
820
72.6k
      break;
821
822
72.6k
    case FreeRDP_DisableWallpaper:
823
72.6k
      settings->DisableWallpaper = cnv.c;
824
72.6k
      break;
825
826
72.1k
    case FreeRDP_DrawAllowColorSubsampling:
827
72.1k
      settings->DrawAllowColorSubsampling = cnv.c;
828
72.1k
      break;
829
830
72.1k
    case FreeRDP_DrawAllowDynamicColorFidelity:
831
72.1k
      settings->DrawAllowDynamicColorFidelity = cnv.c;
832
72.1k
      break;
833
834
72.1k
    case FreeRDP_DrawAllowSkipAlpha:
835
72.1k
      settings->DrawAllowSkipAlpha = cnv.c;
836
72.1k
      break;
837
838
14.4k
    case FreeRDP_DrawGdiPlusCacheEnabled:
839
14.4k
      settings->DrawGdiPlusCacheEnabled = cnv.c;
840
14.4k
      break;
841
842
72.1k
    case FreeRDP_DrawGdiPlusEnabled:
843
72.1k
      settings->DrawGdiPlusEnabled = cnv.c;
844
72.1k
      break;
845
846
14.4k
    case FreeRDP_DrawNineGridEnabled:
847
14.4k
      settings->DrawNineGridEnabled = cnv.c;
848
14.4k
      break;
849
850
14.4k
    case FreeRDP_DumpRemoteFx:
851
14.4k
      settings->DumpRemoteFx = cnv.c;
852
14.4k
      break;
853
854
57.7k
    case FreeRDP_DynamicDaylightTimeDisabled:
855
57.7k
      settings->DynamicDaylightTimeDisabled = cnv.c;
856
57.7k
      break;
857
858
14.4k
    case FreeRDP_DynamicResolutionUpdate:
859
14.4k
      settings->DynamicResolutionUpdate = cnv.c;
860
14.4k
      break;
861
862
14.4k
    case FreeRDP_EmbeddedWindow:
863
14.4k
      settings->EmbeddedWindow = cnv.c;
864
14.4k
      break;
865
866
14.4k
    case FreeRDP_EnableWindowsKey:
867
14.4k
      settings->EnableWindowsKey = cnv.c;
868
14.4k
      break;
869
870
14.4k
    case FreeRDP_EncomspVirtualChannel:
871
14.4k
      settings->EncomspVirtualChannel = cnv.c;
872
14.4k
      break;
873
874
72.1k
    case FreeRDP_ExtSecurity:
875
72.1k
      settings->ExtSecurity = cnv.c;
876
72.1k
      break;
877
878
14.4k
    case FreeRDP_ExternalCertificateManagement:
879
14.4k
      settings->ExternalCertificateManagement = cnv.c;
880
14.4k
      break;
881
882
72.1k
    case FreeRDP_FIPSMode:
883
72.1k
      settings->FIPSMode = cnv.c;
884
72.1k
      break;
885
886
93.8k
    case FreeRDP_FastPathInput:
887
93.8k
      settings->FastPathInput = cnv.c;
888
93.8k
      break;
889
890
72.1k
    case FreeRDP_FastPathOutput:
891
72.1k
      settings->FastPathOutput = cnv.c;
892
72.1k
      break;
893
894
14.4k
    case FreeRDP_ForceEncryptedCsPdu:
895
14.4k
      settings->ForceEncryptedCsPdu = cnv.c;
896
14.4k
      break;
897
898
14.4k
    case FreeRDP_ForceMultimon:
899
14.4k
      settings->ForceMultimon = cnv.c;
900
14.4k
      break;
901
902
72.1k
    case FreeRDP_FrameMarkerCommandEnabled:
903
72.1k
      settings->FrameMarkerCommandEnabled = cnv.c;
904
72.1k
      break;
905
906
72.1k
    case FreeRDP_Fullscreen:
907
72.1k
      settings->Fullscreen = cnv.c;
908
72.1k
      break;
909
910
72.1k
    case FreeRDP_GatewayArmTransport:
911
72.1k
      settings->GatewayArmTransport = cnv.c;
912
72.1k
      break;
913
914
51.3k
    case FreeRDP_GatewayAvdUseTenantid:
915
51.3k
      settings->GatewayAvdUseTenantid = cnv.c;
916
51.3k
      break;
917
918
72.1k
    case FreeRDP_GatewayBypassLocal:
919
72.1k
      settings->GatewayBypassLocal = cnv.c;
920
72.1k
      break;
921
922
14.4k
    case FreeRDP_GatewayEnabled:
923
14.4k
      settings->GatewayEnabled = cnv.c;
924
14.4k
      break;
925
926
72.1k
    case FreeRDP_GatewayHttpExtAuthSspiNtlm:
927
72.1k
      settings->GatewayHttpExtAuthSspiNtlm = cnv.c;
928
72.1k
      break;
929
930
72.1k
    case FreeRDP_GatewayHttpTransport:
931
72.1k
      settings->GatewayHttpTransport = cnv.c;
932
72.1k
      break;
933
934
72.1k
    case FreeRDP_GatewayHttpUseWebsockets:
935
72.1k
      settings->GatewayHttpUseWebsockets = cnv.c;
936
72.1k
      break;
937
938
14.4k
    case FreeRDP_GatewayIgnoreRedirectionPolicy:
939
14.4k
      settings->GatewayIgnoreRedirectionPolicy = cnv.c;
940
14.4k
      break;
941
942
72.1k
    case FreeRDP_GatewayRpcTransport:
943
72.1k
      settings->GatewayRpcTransport = cnv.c;
944
72.1k
      break;
945
946
72.1k
    case FreeRDP_GatewayUdpTransport:
947
72.1k
      settings->GatewayUdpTransport = cnv.c;
948
72.1k
      break;
949
950
72.1k
    case FreeRDP_GatewayUseSameCredentials:
951
72.1k
      settings->GatewayUseSameCredentials = cnv.c;
952
72.1k
      break;
953
954
72.1k
    case FreeRDP_GfxAVC444:
955
72.1k
      settings->GfxAVC444 = cnv.c;
956
72.1k
      break;
957
958
14.4k
    case FreeRDP_GfxAVC444v2:
959
14.4k
      settings->GfxAVC444v2 = cnv.c;
960
14.4k
      break;
961
962
72.1k
    case FreeRDP_GfxH264:
963
72.1k
      settings->GfxH264 = cnv.c;
964
72.1k
      break;
965
966
72.1k
    case FreeRDP_GfxPlanar:
967
72.1k
      settings->GfxPlanar = cnv.c;
968
72.1k
      break;
969
970
72.1k
    case FreeRDP_GfxProgressive:
971
72.1k
      settings->GfxProgressive = cnv.c;
972
72.1k
      break;
973
974
72.1k
    case FreeRDP_GfxProgressiveV2:
975
72.1k
      settings->GfxProgressiveV2 = cnv.c;
976
72.1k
      break;
977
978
72.1k
    case FreeRDP_GfxSendQoeAck:
979
72.1k
      settings->GfxSendQoeAck = cnv.c;
980
72.1k
      break;
981
982
72.1k
    case FreeRDP_GfxSmallCache:
983
72.1k
      settings->GfxSmallCache = cnv.c;
984
72.1k
      break;
985
986
14.4k
    case FreeRDP_GfxSuspendFrameAck:
987
14.4k
      settings->GfxSuspendFrameAck = cnv.c;
988
14.4k
      break;
989
990
72.1k
    case FreeRDP_GfxThinClient:
991
72.1k
      settings->GfxThinClient = cnv.c;
992
72.1k
      break;
993
994
72.1k
    case FreeRDP_GrabKeyboard:
995
72.1k
      settings->GrabKeyboard = cnv.c;
996
72.1k
      break;
997
998
14.4k
    case FreeRDP_GrabMouse:
999
14.4k
      settings->GrabMouse = cnv.c;
1000
14.4k
      break;
1001
1002
93.8k
    case FreeRDP_HasExtendedMouseEvent:
1003
93.8k
      settings->HasExtendedMouseEvent = cnv.c;
1004
93.8k
      break;
1005
1006
93.8k
    case FreeRDP_HasHorizontalWheel:
1007
93.8k
      settings->HasHorizontalWheel = cnv.c;
1008
93.8k
      break;
1009
1010
14.4k
    case FreeRDP_HasMonitorAttributes:
1011
14.4k
      settings->HasMonitorAttributes = cnv.c;
1012
14.4k
      break;
1013
1014
93.8k
    case FreeRDP_HasQoeEvent:
1015
93.8k
      settings->HasQoeEvent = cnv.c;
1016
93.8k
      break;
1017
1018
93.8k
    case FreeRDP_HasRelativeMouseEvent:
1019
93.8k
      settings->HasRelativeMouseEvent = cnv.c;
1020
93.8k
      break;
1021
1022
72.1k
    case FreeRDP_HiDefRemoteApp:
1023
72.1k
      settings->HiDefRemoteApp = cnv.c;
1024
72.1k
      break;
1025
1026
14.4k
    case FreeRDP_IPv6Enabled:
1027
14.4k
      settings->IPv6Enabled = cnv.c;
1028
14.4k
      break;
1029
1030
14.4k
    case FreeRDP_IgnoreCertificate:
1031
14.4k
      settings->IgnoreCertificate = cnv.c;
1032
14.4k
      break;
1033
1034
14.4k
    case FreeRDP_IgnoreInvalidDevices:
1035
14.4k
      settings->IgnoreInvalidDevices = cnv.c;
1036
14.4k
      break;
1037
1038
17.3k
    case FreeRDP_JpegCodec:
1039
17.3k
      settings->JpegCodec = cnv.c;
1040
17.3k
      break;
1041
1042
14.4k
    case FreeRDP_KerberosRdgIsProxy:
1043
14.4k
      settings->KerberosRdgIsProxy = cnv.c;
1044
14.4k
      break;
1045
1046
14.4k
    case FreeRDP_ListMonitors:
1047
14.4k
      settings->ListMonitors = cnv.c;
1048
14.4k
      break;
1049
1050
14.4k
    case FreeRDP_LocalConnection:
1051
14.4k
      settings->LocalConnection = cnv.c;
1052
14.4k
      break;
1053
1054
14.4k
    case FreeRDP_LogonErrors:
1055
14.4k
      settings->LogonErrors = cnv.c;
1056
14.4k
      break;
1057
1058
72.1k
    case FreeRDP_LogonNotify:
1059
72.1k
      settings->LogonNotify = cnv.c;
1060
72.1k
      break;
1061
1062
72.1k
    case FreeRDP_LongCredentialsSupported:
1063
72.1k
      settings->LongCredentialsSupported = cnv.c;
1064
72.1k
      break;
1065
1066
14.4k
    case FreeRDP_LyncRdpMode:
1067
14.4k
      settings->LyncRdpMode = cnv.c;
1068
14.4k
      break;
1069
1070
14.4k
    case FreeRDP_MaximizeShell:
1071
14.4k
      settings->MaximizeShell = cnv.c;
1072
14.4k
      break;
1073
1074
14.4k
    case FreeRDP_MouseAttached:
1075
14.4k
      settings->MouseAttached = cnv.c;
1076
14.4k
      break;
1077
1078
14.4k
    case FreeRDP_MouseHasWheel:
1079
14.4k
      settings->MouseHasWheel = cnv.c;
1080
14.4k
      break;
1081
1082
72.1k
    case FreeRDP_MouseMotion:
1083
72.1k
      settings->MouseMotion = cnv.c;
1084
72.1k
      break;
1085
1086
14.4k
    case FreeRDP_MouseUseRelativeMove:
1087
14.4k
      settings->MouseUseRelativeMove = cnv.c;
1088
14.4k
      break;
1089
1090
72.1k
    case FreeRDP_MstscCookieMode:
1091
72.1k
      settings->MstscCookieMode = cnv.c;
1092
72.1k
      break;
1093
1094
14.4k
    case FreeRDP_MultiTouchGestures:
1095
14.4k
      settings->MultiTouchGestures = cnv.c;
1096
14.4k
      break;
1097
1098
14.4k
    case FreeRDP_MultiTouchInput:
1099
14.4k
      settings->MultiTouchInput = cnv.c;
1100
14.4k
      break;
1101
1102
18.3k
    case FreeRDP_NSCodec:
1103
18.3k
      settings->NSCodec = cnv.c;
1104
18.3k
      break;
1105
1106
72.1k
    case FreeRDP_NSCodecAllowDynamicColorFidelity:
1107
72.1k
      settings->NSCodecAllowDynamicColorFidelity = cnv.c;
1108
72.1k
      break;
1109
1110
72.1k
    case FreeRDP_NSCodecAllowSubsampling:
1111
72.1k
      settings->NSCodecAllowSubsampling = cnv.c;
1112
72.1k
      break;
1113
1114
72.1k
    case FreeRDP_NegotiateSecurityLayer:
1115
72.1k
      settings->NegotiateSecurityLayer = cnv.c;
1116
72.1k
      break;
1117
1118
72.1k
    case FreeRDP_NetworkAutoDetect:
1119
72.1k
      settings->NetworkAutoDetect = cnv.c;
1120
72.1k
      break;
1121
1122
72.1k
    case FreeRDP_NlaSecurity:
1123
72.1k
      settings->NlaSecurity = cnv.c;
1124
72.1k
      break;
1125
1126
72.1k
    case FreeRDP_NoBitmapCompressionHeader:
1127
72.1k
      settings->NoBitmapCompressionHeader = cnv.c;
1128
72.1k
      break;
1129
1130
14.4k
    case FreeRDP_OldLicenseBehaviour:
1131
14.4k
      settings->OldLicenseBehaviour = cnv.c;
1132
14.4k
      break;
1133
1134
14.4k
    case FreeRDP_PasswordIsSmartcardPin:
1135
14.4k
      settings->PasswordIsSmartcardPin = cnv.c;
1136
14.4k
      break;
1137
1138
14.4k
    case FreeRDP_PercentScreenUseHeight:
1139
14.4k
      settings->PercentScreenUseHeight = cnv.c;
1140
14.4k
      break;
1141
1142
14.4k
    case FreeRDP_PercentScreenUseWidth:
1143
14.4k
      settings->PercentScreenUseWidth = cnv.c;
1144
14.4k
      break;
1145
1146
14.4k
    case FreeRDP_PlayRemoteFx:
1147
14.4k
      settings->PlayRemoteFx = cnv.c;
1148
14.4k
      break;
1149
1150
14.4k
    case FreeRDP_PreferIPv6OverIPv4:
1151
14.4k
      settings->PreferIPv6OverIPv4 = cnv.c;
1152
14.4k
      break;
1153
1154
14.4k
    case FreeRDP_PrintReconnectCookie:
1155
14.4k
      settings->PrintReconnectCookie = cnv.c;
1156
14.4k
      break;
1157
1158
14.4k
    case FreeRDP_PromptForCredentials:
1159
14.4k
      settings->PromptForCredentials = cnv.c;
1160
14.4k
      break;
1161
1162
72.1k
    case FreeRDP_RdpSecurity:
1163
72.1k
      settings->RdpSecurity = cnv.c;
1164
72.1k
      break;
1165
1166
72.1k
    case FreeRDP_RdstlsSecurity:
1167
72.1k
      settings->RdstlsSecurity = cnv.c;
1168
72.1k
      break;
1169
1170
57.7k
    case FreeRDP_RedirectClipboard:
1171
57.7k
      settings->RedirectClipboard = cnv.c;
1172
57.7k
      break;
1173
1174
14.4k
    case FreeRDP_RedirectDrives:
1175
14.4k
      settings->RedirectDrives = cnv.c;
1176
14.4k
      break;
1177
1178
14.4k
    case FreeRDP_RedirectHomeDrive:
1179
14.4k
      settings->RedirectHomeDrive = cnv.c;
1180
14.4k
      break;
1181
1182
14.4k
    case FreeRDP_RedirectParallelPorts:
1183
14.4k
      settings->RedirectParallelPorts = cnv.c;
1184
14.4k
      break;
1185
1186
14.4k
    case FreeRDP_RedirectPrinters:
1187
14.4k
      settings->RedirectPrinters = cnv.c;
1188
14.4k
      break;
1189
1190
14.4k
    case FreeRDP_RedirectSerialPorts:
1191
14.4k
      settings->RedirectSerialPorts = cnv.c;
1192
14.4k
      break;
1193
1194
14.4k
    case FreeRDP_RedirectSmartCards:
1195
14.4k
      settings->RedirectSmartCards = cnv.c;
1196
14.4k
      break;
1197
1198
14.4k
    case FreeRDP_RedirectWebAuthN:
1199
14.4k
      settings->RedirectWebAuthN = cnv.c;
1200
14.4k
      break;
1201
1202
72.1k
    case FreeRDP_RefreshRect:
1203
72.1k
      settings->RefreshRect = cnv.c;
1204
72.1k
      break;
1205
1206
14.4k
    case FreeRDP_RemdeskVirtualChannel:
1207
14.4k
      settings->RemdeskVirtualChannel = cnv.c;
1208
14.4k
      break;
1209
1210
14.4k
    case FreeRDP_RemoteAppLanguageBarSupported:
1211
14.4k
      settings->RemoteAppLanguageBarSupported = cnv.c;
1212
14.4k
      break;
1213
1214
14.4k
    case FreeRDP_RemoteApplicationMode:
1215
14.4k
      settings->RemoteApplicationMode = cnv.c;
1216
14.4k
      break;
1217
1218
14.4k
    case FreeRDP_RemoteAssistanceMode:
1219
14.4k
      settings->RemoteAssistanceMode = cnv.c;
1220
14.4k
      break;
1221
1222
14.4k
    case FreeRDP_RemoteAssistanceRequestControl:
1223
14.4k
      settings->RemoteAssistanceRequestControl = cnv.c;
1224
14.4k
      break;
1225
1226
14.4k
    case FreeRDP_RemoteConsoleAudio:
1227
14.4k
      settings->RemoteConsoleAudio = cnv.c;
1228
14.4k
      break;
1229
1230
14.4k
    case FreeRDP_RemoteCredentialGuard:
1231
14.4k
      settings->RemoteCredentialGuard = cnv.c;
1232
14.4k
      break;
1233
1234
17.3k
    case FreeRDP_RemoteFxCodec:
1235
17.3k
      settings->RemoteFxCodec = cnv.c;
1236
17.3k
      break;
1237
1238
16.1k
    case FreeRDP_RemoteFxImageCodec:
1239
16.1k
      settings->RemoteFxImageCodec = cnv.c;
1240
16.1k
      break;
1241
1242
14.4k
    case FreeRDP_RemoteFxOnly:
1243
14.4k
      settings->RemoteFxOnly = cnv.c;
1244
14.4k
      break;
1245
1246
72.1k
    case FreeRDP_RestrictedAdminModeRequired:
1247
72.1k
      settings->RestrictedAdminModeRequired = cnv.c;
1248
72.1k
      break;
1249
1250
72.1k
    case FreeRDP_RestrictedAdminModeSupported:
1251
72.1k
      settings->RestrictedAdminModeSupported = cnv.c;
1252
72.1k
      break;
1253
1254
72.1k
    case FreeRDP_SaltedChecksum:
1255
72.1k
      settings->SaltedChecksum = cnv.c;
1256
72.1k
      break;
1257
1258
14.4k
    case FreeRDP_SendPreconnectionPdu:
1259
14.4k
      settings->SendPreconnectionPdu = cnv.c;
1260
14.4k
      break;
1261
1262
14.4k
    case FreeRDP_ServerLicenseRequired:
1263
14.4k
      settings->ServerLicenseRequired = cnv.c;
1264
14.4k
      break;
1265
1266
72.1k
    case FreeRDP_ServerMode:
1267
72.1k
      settings->ServerMode = cnv.c;
1268
72.1k
      break;
1269
1270
14.4k
    case FreeRDP_SmartSizing:
1271
14.4k
      settings->SmartSizing = cnv.c;
1272
14.4k
      break;
1273
1274
14.4k
    case FreeRDP_SmartcardEmulation:
1275
14.4k
      settings->SmartcardEmulation = cnv.c;
1276
14.4k
      break;
1277
1278
72.1k
    case FreeRDP_SmartcardLogon:
1279
72.1k
      settings->SmartcardLogon = cnv.c;
1280
72.1k
      break;
1281
1282
72.1k
    case FreeRDP_SoftwareGdi:
1283
72.1k
      settings->SoftwareGdi = cnv.c;
1284
72.1k
      break;
1285
1286
72.1k
    case FreeRDP_SoundBeepsEnabled:
1287
72.1k
      settings->SoundBeepsEnabled = cnv.c;
1288
72.1k
      break;
1289
1290
14.4k
    case FreeRDP_SpanMonitors:
1291
14.4k
      settings->SpanMonitors = cnv.c;
1292
14.4k
      break;
1293
1294
72.1k
    case FreeRDP_SupportAsymetricKeys:
1295
72.1k
      settings->SupportAsymetricKeys = cnv.c;
1296
72.1k
      break;
1297
1298
72.1k
    case FreeRDP_SupportDisplayControl:
1299
72.1k
      settings->SupportDisplayControl = cnv.c;
1300
72.1k
      break;
1301
1302
14.4k
    case FreeRDP_SupportDynamicChannels:
1303
14.4k
      settings->SupportDynamicChannels = cnv.c;
1304
14.4k
      break;
1305
1306
72.1k
    case FreeRDP_SupportDynamicTimeZone:
1307
72.1k
      settings->SupportDynamicTimeZone = cnv.c;
1308
72.1k
      break;
1309
1310
14.4k
    case FreeRDP_SupportEchoChannel:
1311
14.4k
      settings->SupportEchoChannel = cnv.c;
1312
14.4k
      break;
1313
1314
14.4k
    case FreeRDP_SupportEdgeActionV1:
1315
14.4k
      settings->SupportEdgeActionV1 = cnv.c;
1316
14.4k
      break;
1317
1318
14.4k
    case FreeRDP_SupportEdgeActionV2:
1319
14.4k
      settings->SupportEdgeActionV2 = cnv.c;
1320
14.4k
      break;
1321
1322
72.1k
    case FreeRDP_SupportErrorInfoPdu:
1323
72.1k
      settings->SupportErrorInfoPdu = cnv.c;
1324
72.1k
      break;
1325
1326
14.4k
    case FreeRDP_SupportGeometryTracking:
1327
14.4k
      settings->SupportGeometryTracking = cnv.c;
1328
14.4k
      break;
1329
1330
72.1k
    case FreeRDP_SupportGraphicsPipeline:
1331
72.1k
      settings->SupportGraphicsPipeline = cnv.c;
1332
72.1k
      break;
1333
1334
72.1k
    case FreeRDP_SupportHeartbeatPdu:
1335
72.1k
      settings->SupportHeartbeatPdu = cnv.c;
1336
72.1k
      break;
1337
1338
72.1k
    case FreeRDP_SupportMonitorLayoutPdu:
1339
72.1k
      settings->SupportMonitorLayoutPdu = cnv.c;
1340
72.1k
      break;
1341
1342
72.5k
    case FreeRDP_SupportMultitransport:
1343
72.5k
      settings->SupportMultitransport = cnv.c;
1344
72.5k
      break;
1345
1346
14.4k
    case FreeRDP_SupportSSHAgentChannel:
1347
14.4k
      settings->SupportSSHAgentChannel = cnv.c;
1348
14.4k
      break;
1349
1350
72.1k
    case FreeRDP_SupportSkipChannelJoin:
1351
72.1k
      settings->SupportSkipChannelJoin = cnv.c;
1352
72.1k
      break;
1353
1354
72.1k
    case FreeRDP_SupportStatusInfoPdu:
1355
72.1k
      settings->SupportStatusInfoPdu = cnv.c;
1356
72.1k
      break;
1357
1358
14.4k
    case FreeRDP_SupportVideoOptimized:
1359
14.4k
      settings->SupportVideoOptimized = cnv.c;
1360
14.4k
      break;
1361
1362
72.1k
    case FreeRDP_SuppressOutput:
1363
72.1k
      settings->SuppressOutput = cnv.c;
1364
72.1k
      break;
1365
1366
14.4k
    case FreeRDP_SurfaceCommandsEnabled:
1367
14.4k
      settings->SurfaceCommandsEnabled = cnv.c;
1368
14.4k
      break;
1369
1370
72.1k
    case FreeRDP_SurfaceFrameMarkerEnabled:
1371
72.1k
      settings->SurfaceFrameMarkerEnabled = cnv.c;
1372
72.1k
      break;
1373
1374
14.4k
    case FreeRDP_SuspendInput:
1375
14.4k
      settings->SuspendInput = cnv.c;
1376
14.4k
      break;
1377
1378
14.4k
    case FreeRDP_SynchronousDynamicChannels:
1379
14.4k
      settings->SynchronousDynamicChannels = cnv.c;
1380
14.4k
      break;
1381
1382
14.4k
    case FreeRDP_SynchronousStaticChannels:
1383
14.4k
      settings->SynchronousStaticChannels = cnv.c;
1384
14.4k
      break;
1385
1386
72.1k
    case FreeRDP_TcpKeepAlive:
1387
72.1k
      settings->TcpKeepAlive = cnv.c;
1388
72.1k
      break;
1389
1390
72.1k
    case FreeRDP_TlsSecurity:
1391
72.1k
      settings->TlsSecurity = cnv.c;
1392
72.1k
      break;
1393
1394
72.1k
    case FreeRDP_ToggleFullscreen:
1395
72.1k
      settings->ToggleFullscreen = cnv.c;
1396
72.1k
      break;
1397
1398
14.4k
    case FreeRDP_TransportDump:
1399
14.4k
      settings->TransportDump = cnv.c;
1400
14.4k
      break;
1401
1402
43.2k
    case FreeRDP_TransportDumpReplay:
1403
43.2k
      settings->TransportDumpReplay = cnv.c;
1404
43.2k
      break;
1405
1406
14.4k
    case FreeRDP_TransportDumpReplayNodelay:
1407
14.4k
      settings->TransportDumpReplayNodelay = cnv.c;
1408
14.4k
      break;
1409
1410
107k
    case FreeRDP_UnicodeInput:
1411
107k
      settings->UnicodeInput = cnv.c;
1412
107k
      break;
1413
1414
72.1k
    case FreeRDP_UnmapButtons:
1415
72.1k
      settings->UnmapButtons = cnv.c;
1416
72.1k
      break;
1417
1418
14.4k
    case FreeRDP_UseCommonStdioCallbacks:
1419
14.4k
      settings->UseCommonStdioCallbacks = cnv.c;
1420
14.4k
      break;
1421
1422
14.4k
    case FreeRDP_UseMultimon:
1423
14.4k
      settings->UseMultimon = cnv.c;
1424
14.4k
      break;
1425
1426
72.1k
    case FreeRDP_UseRdpSecurityLayer:
1427
72.1k
      settings->UseRdpSecurityLayer = cnv.c;
1428
72.1k
      break;
1429
1430
14.4k
    case FreeRDP_UsingSavedCredentials:
1431
14.4k
      settings->UsingSavedCredentials = cnv.c;
1432
14.4k
      break;
1433
1434
14.4k
    case FreeRDP_VideoDisable:
1435
14.4k
      settings->VideoDisable = cnv.c;
1436
14.4k
      break;
1437
1438
14.4k
    case FreeRDP_VmConnectMode:
1439
14.4k
      settings->VmConnectMode = cnv.c;
1440
14.4k
      break;
1441
1442
72.1k
    case FreeRDP_WaitForOutputBufferFlush:
1443
72.1k
      settings->WaitForOutputBufferFlush = cnv.c;
1444
72.1k
      break;
1445
1446
72.1k
    case FreeRDP_Workarea:
1447
72.1k
      settings->Workarea = cnv.c;
1448
72.1k
      break;
1449
1450
0
    default:
1451
0
      WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
1452
0
               freerdp_settings_get_type_name_for_key(id));
1453
0
      return FALSE;
1454
8.28M
  }
1455
8.28M
  return TRUE;
1456
8.28M
}
1457
1458
UINT16 freerdp_settings_get_uint16(WINPR_ATTR_UNUSED const rdpSettings* settings,
1459
                                   WINPR_ATTR_UNUSED FreeRDP_Settings_Keys_UInt16 id)
1460
187k
{
1461
187k
  WINPR_ASSERT(settings);
1462
1463
187k
  switch (id)
1464
187k
  {
1465
14.4k
    case FreeRDP_CapsGeneralCompressionLevel:
1466
14.4k
      return settings->CapsGeneralCompressionLevel;
1467
1468
14.4k
    case FreeRDP_CapsGeneralCompressionTypes:
1469
14.4k
      return settings->CapsGeneralCompressionTypes;
1470
1471
14.4k
    case FreeRDP_CapsProtocolVersion:
1472
14.4k
      return settings->CapsProtocolVersion;
1473
1474
14.4k
    case FreeRDP_CapsRemoteUnshareFlag:
1475
14.4k
      return settings->CapsRemoteUnshareFlag;
1476
1477
14.4k
    case FreeRDP_CapsUpdateCapabilityFlag:
1478
14.4k
      return settings->CapsUpdateCapabilityFlag;
1479
1480
14.4k
    case FreeRDP_DesktopOrientation:
1481
14.4k
      return settings->DesktopOrientation;
1482
1483
14.4k
    case FreeRDP_OrderSupportFlags:
1484
14.4k
      return settings->OrderSupportFlags;
1485
1486
14.4k
    case FreeRDP_OrderSupportFlagsEx:
1487
14.4k
      return settings->OrderSupportFlagsEx;
1488
1489
14.4k
    case FreeRDP_ProxyPort:
1490
14.4k
      return settings->ProxyPort;
1491
1492
14.4k
    case FreeRDP_SupportedColorDepths:
1493
14.4k
      return settings->SupportedColorDepths;
1494
1495
14.4k
    case FreeRDP_TLSMaxVersion:
1496
14.4k
      return settings->TLSMaxVersion;
1497
1498
14.4k
    case FreeRDP_TLSMinVersion:
1499
14.4k
      return settings->TLSMinVersion;
1500
1501
14.4k
    case FreeRDP_TextANSICodePage:
1502
14.4k
      return settings->TextANSICodePage;
1503
1504
0
    default:
1505
0
      WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
1506
0
               freerdp_settings_get_type_name_for_key(id));
1507
0
      WINPR_ASSERT(FALSE);
1508
0
      return 0;
1509
187k
  }
1510
187k
}
1511
1512
BOOL freerdp_settings_set_uint16(WINPR_ATTR_UNUSED rdpSettings* settings,
1513
                                 WINPR_ATTR_UNUSED FreeRDP_Settings_Keys_UInt16 id, UINT16 val)
1514
570k
{
1515
570k
  union
1516
570k
  {
1517
570k
    void* v;
1518
570k
    const void* cv;
1519
570k
    UINT16 c;
1520
570k
    const UINT16 cc;
1521
570k
  } cnv;
1522
570k
  WINPR_ASSERT(settings);
1523
1524
570k
  cnv.c = val;
1525
1526
570k
  switch (id)
1527
570k
  {
1528
14.4k
    case FreeRDP_CapsGeneralCompressionLevel:
1529
14.4k
      settings->CapsGeneralCompressionLevel = cnv.c;
1530
14.4k
      break;
1531
1532
14.4k
    case FreeRDP_CapsGeneralCompressionTypes:
1533
14.4k
      settings->CapsGeneralCompressionTypes = cnv.c;
1534
14.4k
      break;
1535
1536
72.1k
    case FreeRDP_CapsProtocolVersion:
1537
72.1k
      settings->CapsProtocolVersion = cnv.c;
1538
72.1k
      break;
1539
1540
14.4k
    case FreeRDP_CapsRemoteUnshareFlag:
1541
14.4k
      settings->CapsRemoteUnshareFlag = cnv.c;
1542
14.4k
      break;
1543
1544
14.4k
    case FreeRDP_CapsUpdateCapabilityFlag:
1545
14.4k
      settings->CapsUpdateCapabilityFlag = cnv.c;
1546
14.4k
      break;
1547
1548
51.3k
    case FreeRDP_DesktopOrientation:
1549
51.3k
      settings->DesktopOrientation = cnv.c;
1550
51.3k
      break;
1551
1552
72.1k
    case FreeRDP_OrderSupportFlags:
1553
72.1k
      settings->OrderSupportFlags = cnv.c;
1554
72.1k
      break;
1555
1556
14.4k
    case FreeRDP_OrderSupportFlagsEx:
1557
14.4k
      settings->OrderSupportFlagsEx = cnv.c;
1558
14.4k
      break;
1559
1560
14.4k
    case FreeRDP_ProxyPort:
1561
14.4k
      settings->ProxyPort = cnv.c;
1562
14.4k
      break;
1563
1564
72.1k
    case FreeRDP_SupportedColorDepths:
1565
72.1k
      settings->SupportedColorDepths = cnv.c;
1566
72.1k
      break;
1567
1568
72.1k
    case FreeRDP_TLSMaxVersion:
1569
72.1k
      settings->TLSMaxVersion = cnv.c;
1570
72.1k
      break;
1571
1572
72.1k
    case FreeRDP_TLSMinVersion:
1573
72.1k
      settings->TLSMinVersion = cnv.c;
1574
72.1k
      break;
1575
1576
72.1k
    case FreeRDP_TextANSICodePage:
1577
72.1k
      settings->TextANSICodePage = cnv.c;
1578
72.1k
      break;
1579
1580
0
    default:
1581
0
      WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
1582
0
               freerdp_settings_get_type_name_for_key(id));
1583
0
      return FALSE;
1584
570k
  }
1585
570k
  return TRUE;
1586
570k
}
1587
1588
INT16 freerdp_settings_get_int16(WINPR_ATTR_UNUSED const rdpSettings* settings,
1589
                                 WINPR_ATTR_UNUSED FreeRDP_Settings_Keys_Int16 id)
1590
0
{
1591
0
  WINPR_ASSERT(settings);
1592
1593
0
  switch (id)
1594
0
  {
1595
0
    default:
1596
0
      WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
1597
0
               freerdp_settings_get_type_name_for_key(id));
1598
0
      WINPR_ASSERT(FALSE);
1599
0
      return 0;
1600
0
  }
1601
0
}
1602
1603
BOOL freerdp_settings_set_int16(WINPR_ATTR_UNUSED rdpSettings* settings,
1604
                                WINPR_ATTR_UNUSED FreeRDP_Settings_Keys_Int16 id, INT16 val)
1605
0
{
1606
0
  union
1607
0
  {
1608
0
    void* v;
1609
0
    const void* cv;
1610
0
    INT16 c;
1611
0
    const INT16 cc;
1612
0
  } cnv;
1613
0
  WINPR_ASSERT(settings);
1614
1615
0
  cnv.c = val;
1616
1617
0
  switch (id)
1618
0
  {
1619
0
    default:
1620
0
      WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
1621
0
               freerdp_settings_get_type_name_for_key(id));
1622
0
      return FALSE;
1623
0
  }
1624
0
  return TRUE;
1625
0
}
1626
1627
UINT32 freerdp_settings_get_uint32(WINPR_ATTR_UNUSED const rdpSettings* settings,
1628
                                   WINPR_ATTR_UNUSED FreeRDP_Settings_Keys_UInt32 id)
1629
2.63M
{
1630
2.63M
  WINPR_ASSERT(settings);
1631
1632
2.63M
  switch (id)
1633
2.63M
  {
1634
14.4k
    case FreeRDP_AcceptedCertLength:
1635
14.4k
      return settings->AcceptedCertLength;
1636
1637
14.4k
    case FreeRDP_AuthenticationLevel:
1638
14.4k
      return settings->AuthenticationLevel;
1639
1640
14.4k
    case FreeRDP_AutoReconnectMaxRetries:
1641
14.4k
      return settings->AutoReconnectMaxRetries;
1642
1643
354k
    case FreeRDP_BitmapCacheV2NumCells:
1644
354k
      return settings->BitmapCacheV2NumCells;
1645
1646
14.4k
    case FreeRDP_BitmapCacheV3CodecId:
1647
14.4k
      return settings->BitmapCacheV3CodecId;
1648
1649
14.4k
    case FreeRDP_BitmapCacheVersion:
1650
14.4k
      return settings->BitmapCacheVersion;
1651
1652
14.4k
    case FreeRDP_BrushSupportLevel:
1653
14.4k
      return settings->BrushSupportLevel;
1654
1655
28.8k
    case FreeRDP_ChannelCount:
1656
28.8k
      return settings->ChannelCount;
1657
1658
28.8k
    case FreeRDP_ChannelDefArraySize:
1659
28.8k
      return settings->ChannelDefArraySize;
1660
1661
14.4k
    case FreeRDP_ClientBuild:
1662
14.4k
      return settings->ClientBuild;
1663
1664
28.8k
    case FreeRDP_ClientRandomLength:
1665
28.8k
      return settings->ClientRandomLength;
1666
1667
14.4k
    case FreeRDP_ClientSessionId:
1668
14.4k
      return settings->ClientSessionId;
1669
1670
14.4k
    case FreeRDP_ClipboardFeatureMask:
1671
14.4k
      return settings->ClipboardFeatureMask;
1672
1673
14.4k
    case FreeRDP_ClusterInfoFlags:
1674
14.4k
      return settings->ClusterInfoFlags;
1675
1676
16.0k
    case FreeRDP_ColorDepth:
1677
16.0k
      return settings->ColorDepth;
1678
1679
34.1k
    case FreeRDP_ColorPointerCacheSize:
1680
34.1k
      return settings->ColorPointerCacheSize;
1681
1682
14.4k
    case FreeRDP_CompDeskSupportLevel:
1683
14.4k
      return settings->CompDeskSupportLevel;
1684
1685
14.4k
    case FreeRDP_CompressionLevel:
1686
14.4k
      return settings->CompressionLevel;
1687
1688
14.4k
    case FreeRDP_ConnectionType:
1689
14.4k
      return settings->ConnectionType;
1690
1691
14.4k
    case FreeRDP_CookieMaxLength:
1692
14.4k
      return settings->CookieMaxLength;
1693
1694
14.4k
    case FreeRDP_DesktopHeight:
1695
14.4k
      return settings->DesktopHeight;
1696
1697
14.4k
    case FreeRDP_DesktopPhysicalHeight:
1698
14.4k
      return settings->DesktopPhysicalHeight;
1699
1700
14.4k
    case FreeRDP_DesktopPhysicalWidth:
1701
14.4k
      return settings->DesktopPhysicalWidth;
1702
1703
14.4k
    case FreeRDP_DesktopPosX:
1704
14.4k
      return settings->DesktopPosX;
1705
1706
14.4k
    case FreeRDP_DesktopPosY:
1707
14.4k
      return settings->DesktopPosY;
1708
1709
14.4k
    case FreeRDP_DesktopScaleFactor:
1710
14.4k
      return settings->DesktopScaleFactor;
1711
1712
14.4k
    case FreeRDP_DesktopWidth:
1713
14.4k
      return settings->DesktopWidth;
1714
1715
28.8k
    case FreeRDP_DeviceArraySize:
1716
28.8k
      return settings->DeviceArraySize;
1717
1718
28.8k
    case FreeRDP_DeviceCount:
1719
28.8k
      return settings->DeviceCount;
1720
1721
14.4k
    case FreeRDP_DeviceScaleFactor:
1722
14.4k
      return settings->DeviceScaleFactor;
1723
1724
14.4k
    case FreeRDP_DrawNineGridCacheEntries:
1725
14.4k
      return settings->DrawNineGridCacheEntries;
1726
1727
14.4k
    case FreeRDP_DrawNineGridCacheSize:
1728
14.4k
      return settings->DrawNineGridCacheSize;
1729
1730
28.8k
    case FreeRDP_DynamicChannelArraySize:
1731
28.8k
      return settings->DynamicChannelArraySize;
1732
1733
28.8k
    case FreeRDP_DynamicChannelCount:
1734
28.8k
      return settings->DynamicChannelCount;
1735
1736
14.4k
    case FreeRDP_EarlyCapabilityFlags:
1737
14.4k
      return settings->EarlyCapabilityFlags;
1738
1739
14.4k
    case FreeRDP_EncryptionLevel:
1740
14.4k
      return settings->EncryptionLevel;
1741
1742
14.4k
    case FreeRDP_EncryptionMethods:
1743
14.4k
      return settings->EncryptionMethods;
1744
1745
14.4k
    case FreeRDP_ExtEncryptionMethods:
1746
14.4k
      return settings->ExtEncryptionMethods;
1747
1748
14.4k
    case FreeRDP_FakeMouseMotionInterval:
1749
14.4k
      return settings->FakeMouseMotionInterval;
1750
1751
14.4k
    case FreeRDP_Floatbar:
1752
14.4k
      return settings->Floatbar;
1753
1754
14.4k
    case FreeRDP_ForceIPvX:
1755
14.4k
      return settings->ForceIPvX;
1756
1757
14.4k
    case FreeRDP_FrameAcknowledge:
1758
14.4k
      return settings->FrameAcknowledge;
1759
1760
14.4k
    case FreeRDP_GatewayAcceptedCertLength:
1761
14.4k
      return settings->GatewayAcceptedCertLength;
1762
1763
14.4k
    case FreeRDP_GatewayCredentialsSource:
1764
14.4k
      return settings->GatewayCredentialsSource;
1765
1766
14.4k
    case FreeRDP_GatewayPort:
1767
14.4k
      return settings->GatewayPort;
1768
1769
14.4k
    case FreeRDP_GatewayUsageMethod:
1770
14.4k
      return settings->GatewayUsageMethod;
1771
1772
14.4k
    case FreeRDP_GfxCapsFilter:
1773
14.4k
      return settings->GfxCapsFilter;
1774
1775
187k
    case FreeRDP_GlyphSupportLevel:
1776
187k
      return settings->GlyphSupportLevel;
1777
1778
14.4k
    case FreeRDP_JpegCodecId:
1779
14.4k
      return settings->JpegCodecId;
1780
1781
14.4k
    case FreeRDP_JpegQuality:
1782
14.4k
      return settings->JpegQuality;
1783
1784
14.4k
    case FreeRDP_KeySpec:
1785
14.4k
      return settings->KeySpec;
1786
1787
14.4k
    case FreeRDP_KeyboardCodePage:
1788
14.4k
      return settings->KeyboardCodePage;
1789
1790
14.4k
    case FreeRDP_KeyboardFunctionKey:
1791
14.4k
      return settings->KeyboardFunctionKey;
1792
1793
14.4k
    case FreeRDP_KeyboardHook:
1794
14.4k
      return settings->KeyboardHook;
1795
1796
14.4k
    case FreeRDP_KeyboardLayout:
1797
14.4k
      return settings->KeyboardLayout;
1798
1799
14.4k
    case FreeRDP_KeyboardSubType:
1800
14.4k
      return settings->KeyboardSubType;
1801
1802
14.4k
    case FreeRDP_KeyboardType:
1803
14.4k
      return settings->KeyboardType;
1804
1805
14.4k
    case FreeRDP_LargePointerFlag:
1806
14.4k
      return settings->LargePointerFlag;
1807
1808
28.8k
    case FreeRDP_LoadBalanceInfoLength:
1809
28.8k
      return settings->LoadBalanceInfoLength;
1810
1811
14.4k
    case FreeRDP_MonitorAttributeFlags:
1812
14.4k
      return settings->MonitorAttributeFlags;
1813
1814
14.4k
    case FreeRDP_MonitorCount:
1815
14.4k
      return settings->MonitorCount;
1816
1817
28.8k
    case FreeRDP_MonitorDefArraySize:
1818
28.8k
      return settings->MonitorDefArraySize;
1819
1820
14.4k
    case FreeRDP_MonitorFlags:
1821
14.4k
      return settings->MonitorFlags;
1822
1823
14.4k
    case FreeRDP_MultifragMaxRequestSize:
1824
14.4k
      return settings->MultifragMaxRequestSize;
1825
1826
14.4k
    case FreeRDP_MultitransportFlags:
1827
14.4k
      return settings->MultitransportFlags;
1828
1829
14.4k
    case FreeRDP_NSCodecColorLossLevel:
1830
14.4k
      return settings->NSCodecColorLossLevel;
1831
1832
14.4k
    case FreeRDP_NSCodecId:
1833
14.4k
      return settings->NSCodecId;
1834
1835
14.4k
    case FreeRDP_NegotiationFlags:
1836
14.4k
      return settings->NegotiationFlags;
1837
1838
28.8k
    case FreeRDP_NumMonitorIds:
1839
28.8k
      return settings->NumMonitorIds;
1840
1841
14.4k
    case FreeRDP_OffscreenCacheEntries:
1842
14.4k
      return settings->OffscreenCacheEntries;
1843
1844
14.4k
    case FreeRDP_OffscreenCacheSize:
1845
14.4k
      return settings->OffscreenCacheSize;
1846
1847
14.4k
    case FreeRDP_OffscreenSupportLevel:
1848
14.4k
      return settings->OffscreenSupportLevel;
1849
1850
14.4k
    case FreeRDP_OsMajorType:
1851
14.4k
      return settings->OsMajorType;
1852
1853
14.4k
    case FreeRDP_OsMinorType:
1854
14.4k
      return settings->OsMinorType;
1855
1856
14.4k
    case FreeRDP_Password51Length:
1857
14.4k
      return settings->Password51Length;
1858
1859
14.4k
    case FreeRDP_PduSource:
1860
14.4k
      return settings->PduSource;
1861
1862
14.4k
    case FreeRDP_PercentScreen:
1863
14.4k
      return settings->PercentScreen;
1864
1865
17.5k
    case FreeRDP_PerformanceFlags:
1866
17.5k
      return settings->PerformanceFlags;
1867
1868
34.1k
    case FreeRDP_PointerCacheSize:
1869
34.1k
      return settings->PointerCacheSize;
1870
1871
14.4k
    case FreeRDP_PreconnectionId:
1872
14.4k
      return settings->PreconnectionId;
1873
1874
14.4k
    case FreeRDP_ProxyType:
1875
14.4k
      return settings->ProxyType;
1876
1877
15.0k
    case FreeRDP_RdpVersion:
1878
15.0k
      return settings->RdpVersion;
1879
1880
14.4k
    case FreeRDP_ReceivedCapabilitiesSize:
1881
14.4k
      return settings->ReceivedCapabilitiesSize;
1882
1883
14.4k
    case FreeRDP_RedirectedSessionId:
1884
14.4k
      return settings->RedirectedSessionId;
1885
1886
14.4k
    case FreeRDP_RedirectionAcceptedCertLength:
1887
14.4k
      return settings->RedirectionAcceptedCertLength;
1888
1889
14.4k
    case FreeRDP_RedirectionFlags:
1890
14.4k
      return settings->RedirectionFlags;
1891
1892
28.8k
    case FreeRDP_RedirectionGuidLength:
1893
28.8k
      return settings->RedirectionGuidLength;
1894
1895
28.8k
    case FreeRDP_RedirectionPasswordLength:
1896
28.8k
      return settings->RedirectionPasswordLength;
1897
1898
14.4k
    case FreeRDP_RedirectionPreferType:
1899
14.4k
      return settings->RedirectionPreferType;
1900
1901
28.8k
    case FreeRDP_RedirectionTsvUrlLength:
1902
28.8k
      return settings->RedirectionTsvUrlLength;
1903
1904
14.4k
    case FreeRDP_RemoteAppNumIconCacheEntries:
1905
14.4k
      return settings->RemoteAppNumIconCacheEntries;
1906
1907
14.4k
    case FreeRDP_RemoteAppNumIconCaches:
1908
14.4k
      return settings->RemoteAppNumIconCaches;
1909
1910
14.4k
    case FreeRDP_RemoteApplicationExpandCmdLine:
1911
14.4k
      return settings->RemoteApplicationExpandCmdLine;
1912
1913
14.4k
    case FreeRDP_RemoteApplicationExpandWorkingDir:
1914
14.4k
      return settings->RemoteApplicationExpandWorkingDir;
1915
1916
14.4k
    case FreeRDP_RemoteApplicationSupportLevel:
1917
14.4k
      return settings->RemoteApplicationSupportLevel;
1918
1919
14.4k
    case FreeRDP_RemoteApplicationSupportMask:
1920
14.4k
      return settings->RemoteApplicationSupportMask;
1921
1922
14.4k
    case FreeRDP_RemoteFxCaptureFlags:
1923
14.4k
      return settings->RemoteFxCaptureFlags;
1924
1925
14.4k
    case FreeRDP_RemoteFxCodecId:
1926
14.4k
      return settings->RemoteFxCodecId;
1927
1928
14.4k
    case FreeRDP_RemoteFxCodecMode:
1929
14.4k
      return settings->RemoteFxCodecMode;
1930
1931
14.4k
    case FreeRDP_RemoteFxRlgrMode:
1932
14.4k
      return settings->RemoteFxRlgrMode;
1933
1934
14.4k
    case FreeRDP_RemoteWndSupportLevel:
1935
14.4k
      return settings->RemoteWndSupportLevel;
1936
1937
14.4k
    case FreeRDP_RequestedProtocols:
1938
14.4k
      return settings->RequestedProtocols;
1939
1940
14.4k
    case FreeRDP_SelectedProtocol:
1941
14.4k
      return settings->SelectedProtocol;
1942
1943
28.8k
    case FreeRDP_ServerCertificateLength:
1944
28.8k
      return settings->ServerCertificateLength;
1945
1946
14.4k
    case FreeRDP_ServerLicenseProductIssuersCount:
1947
14.4k
      return settings->ServerLicenseProductIssuersCount;
1948
1949
14.4k
    case FreeRDP_ServerLicenseProductVersion:
1950
14.4k
      return settings->ServerLicenseProductVersion;
1951
1952
14.4k
    case FreeRDP_ServerPort:
1953
14.4k
      return settings->ServerPort;
1954
1955
28.8k
    case FreeRDP_ServerRandomLength:
1956
28.8k
      return settings->ServerRandomLength;
1957
1958
14.4k
    case FreeRDP_ShareId:
1959
14.4k
      return settings->ShareId;
1960
1961
14.4k
    case FreeRDP_SmartSizingHeight:
1962
14.4k
      return settings->SmartSizingHeight;
1963
1964
14.4k
    case FreeRDP_SmartSizingWidth:
1965
14.4k
      return settings->SmartSizingWidth;
1966
1967
28.8k
    case FreeRDP_StaticChannelArraySize:
1968
28.8k
      return settings->StaticChannelArraySize;
1969
1970
28.8k
    case FreeRDP_StaticChannelCount:
1971
28.8k
      return settings->StaticChannelCount;
1972
1973
14.4k
    case FreeRDP_SurfaceCommandsSupported:
1974
14.4k
      return settings->SurfaceCommandsSupported;
1975
1976
28.8k
    case FreeRDP_TargetNetAddressCount:
1977
28.8k
      return settings->TargetNetAddressCount;
1978
1979
20.8k
    case FreeRDP_TcpAckTimeout:
1980
20.8k
      return settings->TcpAckTimeout;
1981
1982
14.4k
    case FreeRDP_TcpConnectTimeout:
1983
14.4k
      return settings->TcpConnectTimeout;
1984
1985
20.8k
    case FreeRDP_TcpKeepAliveDelay:
1986
20.8k
      return settings->TcpKeepAliveDelay;
1987
1988
20.8k
    case FreeRDP_TcpKeepAliveInterval:
1989
20.8k
      return settings->TcpKeepAliveInterval;
1990
1991
20.8k
    case FreeRDP_TcpKeepAliveRetries:
1992
20.8k
      return settings->TcpKeepAliveRetries;
1993
1994
14.4k
    case FreeRDP_ThreadingFlags:
1995
14.4k
      return settings->ThreadingFlags;
1996
1997
14.4k
    case FreeRDP_TlsSecLevel:
1998
14.4k
      return settings->TlsSecLevel;
1999
2000
14.4k
    case FreeRDP_VCChunkSize:
2001
14.4k
      return settings->VCChunkSize;
2002
2003
14.4k
    case FreeRDP_VCFlags:
2004
14.4k
      return settings->VCFlags;
2005
2006
0
#if !defined(WITHOUT_FREERDP_3x_DEPRECATED)
2007
    // API Compatibility section, remove with FreeRDP 4.x
2008
0
    case (FreeRDP_Settings_Keys_UInt32)FreeRDP_MonitorLocalShiftX:
2009
0
      return (UINT32)settings->MonitorLocalShiftX;
2010
2011
    // API Compatibility section, remove with FreeRDP 4.x
2012
0
    case (FreeRDP_Settings_Keys_UInt32)FreeRDP_MonitorLocalShiftY:
2013
0
      return (UINT32)settings->MonitorLocalShiftY;
2014
2015
0
#endif
2016
0
    default:
2017
0
      WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
2018
0
               freerdp_settings_get_type_name_for_key(id));
2019
0
      WINPR_ASSERT(FALSE);
2020
0
      return 0;
2021
2.63M
  }
2022
2.63M
}
2023
2024
BOOL freerdp_settings_set_uint32(WINPR_ATTR_UNUSED rdpSettings* settings,
2025
                                 WINPR_ATTR_UNUSED FreeRDP_Settings_Keys_UInt32 id, UINT32 val)
2026
8.45M
{
2027
8.45M
  union
2028
8.45M
  {
2029
8.45M
    void* v;
2030
8.45M
    const void* cv;
2031
8.45M
    UINT32 c;
2032
8.45M
    const UINT32 cc;
2033
8.45M
  } cnv;
2034
8.45M
  WINPR_ASSERT(settings);
2035
2036
8.45M
  cnv.c = val;
2037
2038
8.45M
  switch (id)
2039
8.45M
  {
2040
14.4k
    case FreeRDP_AcceptedCertLength:
2041
14.4k
      settings->AcceptedCertLength = cnv.c;
2042
14.4k
      break;
2043
2044
72.1k
    case FreeRDP_AuthenticationLevel:
2045
72.1k
      settings->AuthenticationLevel = cnv.c;
2046
72.1k
      break;
2047
2048
72.1k
    case FreeRDP_AutoReconnectMaxRetries:
2049
72.1k
      settings->AutoReconnectMaxRetries = cnv.c;
2050
72.1k
      break;
2051
2052
198k
    case FreeRDP_BitmapCacheV2NumCells:
2053
198k
      settings->BitmapCacheV2NumCells = cnv.c;
2054
198k
      break;
2055
2056
14.4k
    case FreeRDP_BitmapCacheV3CodecId:
2057
14.4k
      settings->BitmapCacheV3CodecId = cnv.c;
2058
14.4k
      break;
2059
2060
14.4k
    case FreeRDP_BitmapCacheVersion:
2061
14.4k
      settings->BitmapCacheVersion = cnv.c;
2062
14.4k
      break;
2063
2064
72.1k
    case FreeRDP_BrushSupportLevel:
2065
72.1k
      settings->BrushSupportLevel = cnv.c;
2066
72.1k
      break;
2067
2068
86.5k
    case FreeRDP_ChannelCount:
2069
86.5k
      settings->ChannelCount = cnv.c;
2070
86.5k
      break;
2071
2072
245k
    case FreeRDP_ChannelDefArraySize:
2073
245k
      settings->ChannelDefArraySize = cnv.c;
2074
245k
      break;
2075
2076
72.1k
    case FreeRDP_ClientBuild:
2077
72.1k
      settings->ClientBuild = cnv.c;
2078
72.1k
      break;
2079
2080
115k
    case FreeRDP_ClientRandomLength:
2081
115k
      settings->ClientRandomLength = cnv.c;
2082
115k
      break;
2083
2084
14.4k
    case FreeRDP_ClientSessionId:
2085
14.4k
      settings->ClientSessionId = cnv.c;
2086
14.4k
      break;
2087
2088
72.1k
    case FreeRDP_ClipboardFeatureMask:
2089
72.1k
      settings->ClipboardFeatureMask = cnv.c;
2090
72.1k
      break;
2091
2092
72.1k
    case FreeRDP_ClusterInfoFlags:
2093
72.1k
      settings->ClusterInfoFlags = cnv.c;
2094
72.1k
      break;
2095
2096
75.7k
    case FreeRDP_ColorDepth:
2097
75.7k
      settings->ColorDepth = cnv.c;
2098
75.7k
      break;
2099
2100
81.9k
    case FreeRDP_ColorPointerCacheSize:
2101
81.9k
      settings->ColorPointerCacheSize = cnv.c;
2102
81.9k
      break;
2103
2104
14.4k
    case FreeRDP_CompDeskSupportLevel:
2105
14.4k
      settings->CompDeskSupportLevel = cnv.c;
2106
14.4k
      break;
2107
2108
72.1k
    case FreeRDP_CompressionLevel:
2109
72.1k
      settings->CompressionLevel = cnv.c;
2110
72.1k
      break;
2111
2112
72.1k
    case FreeRDP_ConnectionType:
2113
72.1k
      settings->ConnectionType = cnv.c;
2114
72.1k
      break;
2115
2116
72.1k
    case FreeRDP_CookieMaxLength:
2117
72.1k
      settings->CookieMaxLength = cnv.c;
2118
72.1k
      break;
2119
2120
72.1k
    case FreeRDP_DesktopHeight:
2121
72.1k
      settings->DesktopHeight = cnv.c;
2122
72.1k
      break;
2123
2124
51.3k
    case FreeRDP_DesktopPhysicalHeight:
2125
51.3k
      settings->DesktopPhysicalHeight = cnv.c;
2126
51.3k
      break;
2127
2128
51.3k
    case FreeRDP_DesktopPhysicalWidth:
2129
51.3k
      settings->DesktopPhysicalWidth = cnv.c;
2130
51.3k
      break;
2131
2132
72.1k
    case FreeRDP_DesktopPosX:
2133
72.1k
      settings->DesktopPosX = cnv.c;
2134
72.1k
      break;
2135
2136
72.1k
    case FreeRDP_DesktopPosY:
2137
72.1k
      settings->DesktopPosY = cnv.c;
2138
72.1k
      break;
2139
2140
51.3k
    case FreeRDP_DesktopScaleFactor:
2141
51.3k
      settings->DesktopScaleFactor = cnv.c;
2142
51.3k
      break;
2143
2144
72.1k
    case FreeRDP_DesktopWidth:
2145
72.1k
      settings->DesktopWidth = cnv.c;
2146
72.1k
      break;
2147
2148
303k
    case FreeRDP_DeviceArraySize:
2149
303k
      settings->DeviceArraySize = cnv.c;
2150
303k
      break;
2151
2152
216k
    case FreeRDP_DeviceCount:
2153
216k
      settings->DeviceCount = cnv.c;
2154
216k
      break;
2155
2156
51.3k
    case FreeRDP_DeviceScaleFactor:
2157
51.3k
      settings->DeviceScaleFactor = cnv.c;
2158
51.3k
      break;
2159
2160
72.1k
    case FreeRDP_DrawNineGridCacheEntries:
2161
72.1k
      settings->DrawNineGridCacheEntries = cnv.c;
2162
72.1k
      break;
2163
2164
72.1k
    case FreeRDP_DrawNineGridCacheSize:
2165
72.1k
      settings->DrawNineGridCacheSize = cnv.c;
2166
72.1k
      break;
2167
2168
303k
    case FreeRDP_DynamicChannelArraySize:
2169
303k
      settings->DynamicChannelArraySize = cnv.c;
2170
303k
      break;
2171
2172
216k
    case FreeRDP_DynamicChannelCount:
2173
216k
      settings->DynamicChannelCount = cnv.c;
2174
216k
      break;
2175
2176
14.4k
    case FreeRDP_EarlyCapabilityFlags:
2177
14.4k
      settings->EarlyCapabilityFlags = cnv.c;
2178
14.4k
      break;
2179
2180
72.1k
    case FreeRDP_EncryptionLevel:
2181
72.1k
      settings->EncryptionLevel = cnv.c;
2182
72.1k
      break;
2183
2184
72.1k
    case FreeRDP_EncryptionMethods:
2185
72.1k
      settings->EncryptionMethods = cnv.c;
2186
72.1k
      break;
2187
2188
14.4k
    case FreeRDP_ExtEncryptionMethods:
2189
14.4k
      settings->ExtEncryptionMethods = cnv.c;
2190
14.4k
      break;
2191
2192
14.4k
    case FreeRDP_FakeMouseMotionInterval:
2193
14.4k
      settings->FakeMouseMotionInterval = cnv.c;
2194
14.4k
      break;
2195
2196
14.4k
    case FreeRDP_Floatbar:
2197
14.4k
      settings->Floatbar = cnv.c;
2198
14.4k
      break;
2199
2200
14.4k
    case FreeRDP_ForceIPvX:
2201
14.4k
      settings->ForceIPvX = cnv.c;
2202
14.4k
      break;
2203
2204
72.1k
    case FreeRDP_FrameAcknowledge:
2205
72.1k
      settings->FrameAcknowledge = cnv.c;
2206
72.1k
      break;
2207
2208
14.4k
    case FreeRDP_GatewayAcceptedCertLength:
2209
14.4k
      settings->GatewayAcceptedCertLength = cnv.c;
2210
14.4k
      break;
2211
2212
14.4k
    case FreeRDP_GatewayCredentialsSource:
2213
14.4k
      settings->GatewayCredentialsSource = cnv.c;
2214
14.4k
      break;
2215
2216
72.1k
    case FreeRDP_GatewayPort:
2217
72.1k
      settings->GatewayPort = cnv.c;
2218
72.1k
      break;
2219
2220
14.4k
    case FreeRDP_GatewayUsageMethod:
2221
14.4k
      settings->GatewayUsageMethod = cnv.c;
2222
14.4k
      break;
2223
2224
14.4k
    case FreeRDP_GfxCapsFilter:
2225
14.4k
      settings->GfxCapsFilter = cnv.c;
2226
14.4k
      break;
2227
2228
72.1k
    case FreeRDP_GlyphSupportLevel:
2229
72.1k
      settings->GlyphSupportLevel = cnv.c;
2230
72.1k
      break;
2231
2232
14.4k
    case FreeRDP_JpegCodecId:
2233
14.4k
      settings->JpegCodecId = cnv.c;
2234
14.4k
      break;
2235
2236
14.4k
    case FreeRDP_JpegQuality:
2237
14.4k
      settings->JpegQuality = cnv.c;
2238
14.4k
      break;
2239
2240
72.1k
    case FreeRDP_KeySpec:
2241
72.1k
      settings->KeySpec = cnv.c;
2242
72.1k
      break;
2243
2244
14.4k
    case FreeRDP_KeyboardCodePage:
2245
14.4k
      settings->KeyboardCodePage = cnv.c;
2246
14.4k
      break;
2247
2248
72.1k
    case FreeRDP_KeyboardFunctionKey:
2249
72.1k
      settings->KeyboardFunctionKey = cnv.c;
2250
72.1k
      break;
2251
2252
72.1k
    case FreeRDP_KeyboardHook:
2253
72.1k
      settings->KeyboardHook = cnv.c;
2254
72.1k
      break;
2255
2256
72.1k
    case FreeRDP_KeyboardLayout:
2257
72.1k
      settings->KeyboardLayout = cnv.c;
2258
72.1k
      break;
2259
2260
72.1k
    case FreeRDP_KeyboardSubType:
2261
72.1k
      settings->KeyboardSubType = cnv.c;
2262
72.1k
      break;
2263
2264
72.1k
    case FreeRDP_KeyboardType:
2265
72.1k
      settings->KeyboardType = cnv.c;
2266
72.1k
      break;
2267
2268
72.1k
    case FreeRDP_LargePointerFlag:
2269
72.1k
      settings->LargePointerFlag = cnv.c;
2270
72.1k
      break;
2271
2272
115k
    case FreeRDP_LoadBalanceInfoLength:
2273
115k
      settings->LoadBalanceInfoLength = cnv.c;
2274
115k
      break;
2275
2276
14.4k
    case FreeRDP_MonitorAttributeFlags:
2277
14.4k
      settings->MonitorAttributeFlags = cnv.c;
2278
14.4k
      break;
2279
2280
72.1k
    case FreeRDP_MonitorCount:
2281
72.1k
      settings->MonitorCount = cnv.c;
2282
72.1k
      break;
2283
2284
245k
    case FreeRDP_MonitorDefArraySize:
2285
245k
      settings->MonitorDefArraySize = cnv.c;
2286
245k
      break;
2287
2288
14.4k
    case FreeRDP_MonitorFlags:
2289
14.4k
      settings->MonitorFlags = cnv.c;
2290
14.4k
      break;
2291
2292
72.1k
    case FreeRDP_MultifragMaxRequestSize:
2293
72.1k
      settings->MultifragMaxRequestSize = cnv.c;
2294
72.1k
      break;
2295
2296
72.5k
    case FreeRDP_MultitransportFlags:
2297
72.5k
      settings->MultitransportFlags = cnv.c;
2298
72.5k
      break;
2299
2300
72.1k
    case FreeRDP_NSCodecColorLossLevel:
2301
72.1k
      settings->NSCodecColorLossLevel = cnv.c;
2302
72.1k
      break;
2303
2304
14.4k
    case FreeRDP_NSCodecId:
2305
14.4k
      settings->NSCodecId = cnv.c;
2306
14.4k
      break;
2307
2308
14.4k
    case FreeRDP_NegotiationFlags:
2309
14.4k
      settings->NegotiationFlags = cnv.c;
2310
14.4k
      break;
2311
2312
173k
    case FreeRDP_NumMonitorIds:
2313
173k
      settings->NumMonitorIds = cnv.c;
2314
173k
      break;
2315
2316
72.1k
    case FreeRDP_OffscreenCacheEntries:
2317
72.1k
      settings->OffscreenCacheEntries = cnv.c;
2318
72.1k
      break;
2319
2320
72.1k
    case FreeRDP_OffscreenCacheSize:
2321
72.1k
      settings->OffscreenCacheSize = cnv.c;
2322
72.1k
      break;
2323
2324
72.1k
    case FreeRDP_OffscreenSupportLevel:
2325
72.1k
      settings->OffscreenSupportLevel = cnv.c;
2326
72.1k
      break;
2327
2328
14.4k
    case FreeRDP_OsMajorType:
2329
14.4k
      settings->OsMajorType = cnv.c;
2330
14.4k
      break;
2331
2332
14.4k
    case FreeRDP_OsMinorType:
2333
14.4k
      settings->OsMinorType = cnv.c;
2334
14.4k
      break;
2335
2336
101k
    case FreeRDP_Password51Length:
2337
101k
      settings->Password51Length = cnv.c;
2338
101k
      break;
2339
2340
14.4k
    case FreeRDP_PduSource:
2341
14.4k
      settings->PduSource = cnv.c;
2342
14.4k
      break;
2343
2344
14.4k
    case FreeRDP_PercentScreen:
2345
14.4k
      settings->PercentScreen = cnv.c;
2346
14.4k
      break;
2347
2348
72.1k
    case FreeRDP_PerformanceFlags:
2349
72.1k
      settings->PerformanceFlags = cnv.c;
2350
72.1k
      break;
2351
2352
81.9k
    case FreeRDP_PointerCacheSize:
2353
81.9k
      settings->PointerCacheSize = cnv.c;
2354
81.9k
      break;
2355
2356
14.4k
    case FreeRDP_PreconnectionId:
2357
14.4k
      settings->PreconnectionId = cnv.c;
2358
14.4k
      break;
2359
2360
14.4k
    case FreeRDP_ProxyType:
2361
14.4k
      settings->ProxyType = cnv.c;
2362
14.4k
      break;
2363
2364
72.1k
    case FreeRDP_RdpVersion:
2365
72.1k
      settings->RdpVersion = cnv.c;
2366
72.1k
      break;
2367
2368
14.4k
    case FreeRDP_ReceivedCapabilitiesSize:
2369
14.4k
      settings->ReceivedCapabilitiesSize = cnv.c;
2370
14.4k
      break;
2371
2372
14.4k
    case FreeRDP_RedirectedSessionId:
2373
14.4k
      settings->RedirectedSessionId = cnv.c;
2374
14.4k
      break;
2375
2376
14.4k
    case FreeRDP_RedirectionAcceptedCertLength:
2377
14.4k
      settings->RedirectionAcceptedCertLength = cnv.c;
2378
14.4k
      break;
2379
2380
14.4k
    case FreeRDP_RedirectionFlags:
2381
14.4k
      settings->RedirectionFlags = cnv.c;
2382
14.4k
      break;
2383
2384
115k
    case FreeRDP_RedirectionGuidLength:
2385
115k
      settings->RedirectionGuidLength = cnv.c;
2386
115k
      break;
2387
2388
115k
    case FreeRDP_RedirectionPasswordLength:
2389
115k
      settings->RedirectionPasswordLength = cnv.c;
2390
115k
      break;
2391
2392
14.4k
    case FreeRDP_RedirectionPreferType:
2393
14.4k
      settings->RedirectionPreferType = cnv.c;
2394
14.4k
      break;
2395
2396
115k
    case FreeRDP_RedirectionTsvUrlLength:
2397
115k
      settings->RedirectionTsvUrlLength = cnv.c;
2398
115k
      break;
2399
2400
72.1k
    case FreeRDP_RemoteAppNumIconCacheEntries:
2401
72.1k
      settings->RemoteAppNumIconCacheEntries = cnv.c;
2402
72.1k
      break;
2403
2404
72.1k
    case FreeRDP_RemoteAppNumIconCaches:
2405
72.1k
      settings->RemoteAppNumIconCaches = cnv.c;
2406
72.1k
      break;
2407
2408
14.4k
    case FreeRDP_RemoteApplicationExpandCmdLine:
2409
14.4k
      settings->RemoteApplicationExpandCmdLine = cnv.c;
2410
14.4k
      break;
2411
2412
14.4k
    case FreeRDP_RemoteApplicationExpandWorkingDir:
2413
14.4k
      settings->RemoteApplicationExpandWorkingDir = cnv.c;
2414
14.4k
      break;
2415
2416
14.4k
    case FreeRDP_RemoteApplicationSupportLevel:
2417
14.4k
      settings->RemoteApplicationSupportLevel = cnv.c;
2418
14.4k
      break;
2419
2420
72.1k
    case FreeRDP_RemoteApplicationSupportMask:
2421
72.1k
      settings->RemoteApplicationSupportMask = cnv.c;
2422
72.1k
      break;
2423
2424
14.4k
    case FreeRDP_RemoteFxCaptureFlags:
2425
14.4k
      settings->RemoteFxCaptureFlags = cnv.c;
2426
14.4k
      break;
2427
2428
14.4k
    case FreeRDP_RemoteFxCodecId:
2429
14.4k
      settings->RemoteFxCodecId = cnv.c;
2430
14.4k
      break;
2431
2432
14.4k
    case FreeRDP_RemoteFxCodecMode:
2433
14.4k
      settings->RemoteFxCodecMode = cnv.c;
2434
14.4k
      break;
2435
2436
72.1k
    case FreeRDP_RemoteFxRlgrMode:
2437
72.1k
      settings->RemoteFxRlgrMode = cnv.c;
2438
72.1k
      break;
2439
2440
72.1k
    case FreeRDP_RemoteWndSupportLevel:
2441
72.1k
      settings->RemoteWndSupportLevel = cnv.c;
2442
72.1k
      break;
2443
2444
14.4k
    case FreeRDP_RequestedProtocols:
2445
14.4k
      settings->RequestedProtocols = cnv.c;
2446
14.4k
      break;
2447
2448
14.4k
    case FreeRDP_SelectedProtocol:
2449
14.4k
      settings->SelectedProtocol = cnv.c;
2450
14.4k
      break;
2451
2452
115k
    case FreeRDP_ServerCertificateLength:
2453
115k
      settings->ServerCertificateLength = cnv.c;
2454
115k
      break;
2455
2456
245k
    case FreeRDP_ServerLicenseProductIssuersCount:
2457
245k
      settings->ServerLicenseProductIssuersCount = cnv.c;
2458
245k
      break;
2459
2460
72.1k
    case FreeRDP_ServerLicenseProductVersion:
2461
72.1k
      settings->ServerLicenseProductVersion = cnv.c;
2462
72.1k
      break;
2463
2464
72.1k
    case FreeRDP_ServerPort:
2465
72.1k
      settings->ServerPort = cnv.c;
2466
72.1k
      break;
2467
2468
115k
    case FreeRDP_ServerRandomLength:
2469
115k
      settings->ServerRandomLength = cnv.c;
2470
115k
      break;
2471
2472
17.5k
    case FreeRDP_ShareId:
2473
17.5k
      settings->ShareId = cnv.c;
2474
17.5k
      break;
2475
2476
14.4k
    case FreeRDP_SmartSizingHeight:
2477
14.4k
      settings->SmartSizingHeight = cnv.c;
2478
14.4k
      break;
2479
2480
14.4k
    case FreeRDP_SmartSizingWidth:
2481
14.4k
      settings->SmartSizingWidth = cnv.c;
2482
14.4k
      break;
2483
2484
303k
    case FreeRDP_StaticChannelArraySize:
2485
303k
      settings->StaticChannelArraySize = cnv.c;
2486
303k
      break;
2487
2488
216k
    case FreeRDP_StaticChannelCount:
2489
216k
      settings->StaticChannelCount = cnv.c;
2490
216k
      break;
2491
2492
72.1k
    case FreeRDP_SurfaceCommandsSupported:
2493
72.1k
      settings->SurfaceCommandsSupported = cnv.c;
2494
72.1k
      break;
2495
2496
14.4k
    case FreeRDP_TargetNetAddressCount:
2497
14.4k
      settings->TargetNetAddressCount = cnv.c;
2498
14.4k
      break;
2499
2500
72.1k
    case FreeRDP_TcpAckTimeout:
2501
72.1k
      settings->TcpAckTimeout = cnv.c;
2502
72.1k
      break;
2503
2504
72.1k
    case FreeRDP_TcpConnectTimeout:
2505
72.1k
      settings->TcpConnectTimeout = cnv.c;
2506
72.1k
      break;
2507
2508
72.1k
    case FreeRDP_TcpKeepAliveDelay:
2509
72.1k
      settings->TcpKeepAliveDelay = cnv.c;
2510
72.1k
      break;
2511
2512
72.1k
    case FreeRDP_TcpKeepAliveInterval:
2513
72.1k
      settings->TcpKeepAliveInterval = cnv.c;
2514
72.1k
      break;
2515
2516
72.1k
    case FreeRDP_TcpKeepAliveRetries:
2517
72.1k
      settings->TcpKeepAliveRetries = cnv.c;
2518
72.1k
      break;
2519
2520
14.4k
    case FreeRDP_ThreadingFlags:
2521
14.4k
      settings->ThreadingFlags = cnv.c;
2522
14.4k
      break;
2523
2524
72.1k
    case FreeRDP_TlsSecLevel:
2525
72.1k
      settings->TlsSecLevel = cnv.c;
2526
72.1k
      break;
2527
2528
72.1k
    case FreeRDP_VCChunkSize:
2529
72.1k
      settings->VCChunkSize = cnv.c;
2530
72.1k
      break;
2531
2532
14.4k
    case FreeRDP_VCFlags:
2533
14.4k
      settings->VCFlags = cnv.c;
2534
14.4k
      break;
2535
2536
0
#if !defined(WITHOUT_FREERDP_3x_DEPRECATED)
2537
    // API Compatibility section, remove with FreeRDP 4.x
2538
0
    case FreeRDP_MonitorLocalShiftX:
2539
0
      settings->MonitorLocalShiftX = (int32_t)cnv.c;
2540
0
      break;
2541
2542
    // API Compatibility section, remove with FreeRDP 4.x
2543
0
    case FreeRDP_MonitorLocalShiftY:
2544
0
      settings->MonitorLocalShiftY = (int32_t)cnv.c;
2545
0
      break;
2546
2547
0
#endif
2548
0
    default:
2549
0
      WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
2550
0
               freerdp_settings_get_type_name_for_key(id));
2551
0
      return FALSE;
2552
8.45M
  }
2553
8.45M
  return TRUE;
2554
8.45M
}
2555
2556
INT32 freerdp_settings_get_int32(WINPR_ATTR_UNUSED const rdpSettings* settings,
2557
                                 WINPR_ATTR_UNUSED FreeRDP_Settings_Keys_Int32 id)
2558
57.7k
{
2559
57.7k
  WINPR_ASSERT(settings);
2560
2561
57.7k
  switch (id)
2562
57.7k
  {
2563
14.4k
    case FreeRDP_MonitorLocalShiftX:
2564
14.4k
      return settings->MonitorLocalShiftX;
2565
2566
14.4k
    case FreeRDP_MonitorLocalShiftY:
2567
14.4k
      return settings->MonitorLocalShiftY;
2568
2569
14.4k
    case FreeRDP_XPan:
2570
14.4k
      return settings->XPan;
2571
2572
14.4k
    case FreeRDP_YPan:
2573
14.4k
      return settings->YPan;
2574
2575
0
    default:
2576
0
      WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
2577
0
               freerdp_settings_get_type_name_for_key(id));
2578
0
      WINPR_ASSERT(FALSE);
2579
0
      return 0;
2580
57.7k
  }
2581
57.7k
}
2582
2583
BOOL freerdp_settings_set_int32(WINPR_ATTR_UNUSED rdpSettings* settings,
2584
                                WINPR_ATTR_UNUSED FreeRDP_Settings_Keys_Int32 id, INT32 val)
2585
173k
{
2586
173k
  union
2587
173k
  {
2588
173k
    void* v;
2589
173k
    const void* cv;
2590
173k
    INT32 c;
2591
173k
    const INT32 cc;
2592
173k
  } cnv;
2593
173k
  WINPR_ASSERT(settings);
2594
2595
173k
  cnv.c = val;
2596
2597
173k
  switch (id)
2598
173k
  {
2599
72.1k
    case FreeRDP_MonitorLocalShiftX:
2600
72.1k
      settings->MonitorLocalShiftX = cnv.c;
2601
72.1k
      break;
2602
2603
72.1k
    case FreeRDP_MonitorLocalShiftY:
2604
72.1k
      settings->MonitorLocalShiftY = cnv.c;
2605
72.1k
      break;
2606
2607
14.4k
    case FreeRDP_XPan:
2608
14.4k
      settings->XPan = cnv.c;
2609
14.4k
      break;
2610
2611
14.4k
    case FreeRDP_YPan:
2612
14.4k
      settings->YPan = cnv.c;
2613
14.4k
      break;
2614
2615
0
    default:
2616
0
      WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
2617
0
               freerdp_settings_get_type_name_for_key(id));
2618
0
      return FALSE;
2619
173k
  }
2620
173k
  return TRUE;
2621
173k
}
2622
2623
UINT64 freerdp_settings_get_uint64(WINPR_ATTR_UNUSED const rdpSettings* settings,
2624
                                   WINPR_ATTR_UNUSED FreeRDP_Settings_Keys_UInt64 id)
2625
28.8k
{
2626
28.8k
  WINPR_ASSERT(settings);
2627
2628
28.8k
  switch (id)
2629
28.8k
  {
2630
14.4k
    case FreeRDP_MonitorOverrideFlags:
2631
14.4k
      return settings->MonitorOverrideFlags;
2632
2633
14.4k
    case FreeRDP_ParentWindowId:
2634
14.4k
      return settings->ParentWindowId;
2635
2636
0
    default:
2637
0
      WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
2638
0
               freerdp_settings_get_type_name_for_key(id));
2639
0
      WINPR_ASSERT(FALSE);
2640
0
      return 0;
2641
28.8k
  }
2642
28.8k
}
2643
2644
BOOL freerdp_settings_set_uint64(WINPR_ATTR_UNUSED rdpSettings* settings,
2645
                                 WINPR_ATTR_UNUSED FreeRDP_Settings_Keys_UInt64 id, UINT64 val)
2646
28.8k
{
2647
28.8k
  union
2648
28.8k
  {
2649
28.8k
    void* v;
2650
28.8k
    const void* cv;
2651
28.8k
    UINT64 c;
2652
28.8k
    const UINT64 cc;
2653
28.8k
  } cnv;
2654
28.8k
  WINPR_ASSERT(settings);
2655
2656
28.8k
  cnv.c = val;
2657
2658
28.8k
  switch (id)
2659
28.8k
  {
2660
14.4k
    case FreeRDP_MonitorOverrideFlags:
2661
14.4k
      settings->MonitorOverrideFlags = cnv.c;
2662
14.4k
      break;
2663
2664
14.4k
    case FreeRDP_ParentWindowId:
2665
14.4k
      settings->ParentWindowId = cnv.c;
2666
14.4k
      break;
2667
2668
0
    default:
2669
0
      WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
2670
0
               freerdp_settings_get_type_name_for_key(id));
2671
0
      return FALSE;
2672
28.8k
  }
2673
28.8k
  return TRUE;
2674
28.8k
}
2675
2676
INT64 freerdp_settings_get_int64(WINPR_ATTR_UNUSED const rdpSettings* settings,
2677
                                 WINPR_ATTR_UNUSED FreeRDP_Settings_Keys_Int64 id)
2678
0
{
2679
0
  WINPR_ASSERT(settings);
2680
2681
0
  switch (id)
2682
0
  {
2683
0
    default:
2684
0
      WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
2685
0
               freerdp_settings_get_type_name_for_key(id));
2686
0
      WINPR_ASSERT(FALSE);
2687
0
      return 0;
2688
0
  }
2689
0
}
2690
2691
BOOL freerdp_settings_set_int64(WINPR_ATTR_UNUSED rdpSettings* settings,
2692
                                WINPR_ATTR_UNUSED FreeRDP_Settings_Keys_Int64 id, INT64 val)
2693
0
{
2694
0
  union
2695
0
  {
2696
0
    void* v;
2697
0
    const void* cv;
2698
0
    INT64 c;
2699
0
    const INT64 cc;
2700
0
  } cnv;
2701
0
  WINPR_ASSERT(settings);
2702
2703
0
  cnv.c = val;
2704
2705
0
  switch (id)
2706
0
  {
2707
0
    default:
2708
0
      WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
2709
0
               freerdp_settings_get_type_name_for_key(id));
2710
0
      return FALSE;
2711
0
  }
2712
0
  return TRUE;
2713
0
}
2714
2715
const char* freerdp_settings_get_string(WINPR_ATTR_UNUSED const rdpSettings* settings,
2716
                                        WINPR_ATTR_UNUSED FreeRDP_Settings_Keys_String id)
2717
1.64M
{
2718
1.64M
  WINPR_ASSERT(settings);
2719
2720
1.64M
  switch (id)
2721
1.64M
  {
2722
14.4k
    case FreeRDP_AadServerHostname:
2723
14.4k
      return settings->AadServerHostname;
2724
2725
14.4k
    case FreeRDP_AcceptedCert:
2726
14.4k
      return settings->AcceptedCert;
2727
2728
28.8k
    case FreeRDP_ActionScript:
2729
28.8k
      return settings->ActionScript;
2730
2731
14.4k
    case FreeRDP_AllowedTlsCiphers:
2732
14.4k
      return settings->AllowedTlsCiphers;
2733
2734
14.4k
    case FreeRDP_AlternateShell:
2735
14.4k
      return settings->AlternateShell;
2736
2737
14.4k
    case FreeRDP_AssistanceFile:
2738
14.4k
      return settings->AssistanceFile;
2739
2740
14.4k
    case FreeRDP_AuthenticationPackageList:
2741
14.4k
      return settings->AuthenticationPackageList;
2742
2743
14.4k
    case FreeRDP_AuthenticationServiceClass:
2744
14.4k
      return settings->AuthenticationServiceClass;
2745
2746
14.4k
    case FreeRDP_BitmapCachePersistFile:
2747
14.4k
      return settings->BitmapCachePersistFile;
2748
2749
14.4k
    case FreeRDP_CardName:
2750
14.4k
      return settings->CardName;
2751
2752
14.4k
    case FreeRDP_CertificateAcceptedFingerprints:
2753
14.4k
      return settings->CertificateAcceptedFingerprints;
2754
2755
14.4k
    case FreeRDP_CertificateName:
2756
14.4k
      return settings->CertificateName;
2757
2758
14.4k
    case FreeRDP_ClientAddress:
2759
14.4k
      return settings->ClientAddress;
2760
2761
72.1k
    case FreeRDP_ClientDir:
2762
72.1k
      return settings->ClientDir;
2763
2764
14.4k
    case FreeRDP_ClientHostname:
2765
14.4k
      return settings->ClientHostname;
2766
2767
14.4k
    case FreeRDP_ClientProductId:
2768
14.4k
      return settings->ClientProductId;
2769
2770
14.4k
    case FreeRDP_ClipboardUseSelection:
2771
14.4k
      return settings->ClipboardUseSelection;
2772
2773
14.4k
    case FreeRDP_ComputerName:
2774
14.4k
      return settings->ComputerName;
2775
2776
14.4k
    case FreeRDP_ConfigPath:
2777
14.4k
      return settings->ConfigPath;
2778
2779
14.4k
    case FreeRDP_ConnectionFile:
2780
14.4k
      return settings->ConnectionFile;
2781
2782
14.4k
    case FreeRDP_ContainerName:
2783
14.4k
      return settings->ContainerName;
2784
2785
14.4k
    case FreeRDP_CspName:
2786
14.4k
      return settings->CspName;
2787
2788
14.4k
    case FreeRDP_CurrentPath:
2789
14.4k
      return settings->CurrentPath;
2790
2791
14.4k
    case FreeRDP_Domain:
2792
14.4k
      return settings->Domain;
2793
2794
14.4k
    case FreeRDP_DrivesToRedirect:
2795
14.4k
      return settings->DrivesToRedirect;
2796
2797
14.4k
    case FreeRDP_DumpRemoteFxFile:
2798
14.4k
      return settings->DumpRemoteFxFile;
2799
2800
14.4k
    case FreeRDP_DynamicDSTTimeZoneKeyName:
2801
14.4k
      return settings->DynamicDSTTimeZoneKeyName;
2802
2803
14.4k
    case FreeRDP_GatewayAcceptedCert:
2804
14.4k
      return settings->GatewayAcceptedCert;
2805
2806
14.4k
    case FreeRDP_GatewayAccessToken:
2807
14.4k
      return settings->GatewayAccessToken;
2808
2809
14.4k
    case FreeRDP_GatewayAvdAadtenantid:
2810
14.4k
      return settings->GatewayAvdAadtenantid;
2811
2812
14.4k
    case FreeRDP_GatewayAvdAccessAadFormat:
2813
14.4k
      return settings->GatewayAvdAccessAadFormat;
2814
2815
14.4k
    case FreeRDP_GatewayAvdAccessTokenFormat:
2816
14.4k
      return settings->GatewayAvdAccessTokenFormat;
2817
2818
14.4k
    case FreeRDP_GatewayAvdActivityhint:
2819
14.4k
      return settings->GatewayAvdActivityhint;
2820
2821
14.4k
    case FreeRDP_GatewayAvdArmpath:
2822
14.4k
      return settings->GatewayAvdArmpath;
2823
2824
14.4k
    case FreeRDP_GatewayAvdClientID:
2825
14.4k
      return settings->GatewayAvdClientID;
2826
2827
14.4k
    case FreeRDP_GatewayAvdDiagnosticserviceurl:
2828
14.4k
      return settings->GatewayAvdDiagnosticserviceurl;
2829
2830
14.4k
    case FreeRDP_GatewayAvdGeo:
2831
14.4k
      return settings->GatewayAvdGeo;
2832
2833
14.4k
    case FreeRDP_GatewayAvdHubdiscoverygeourl:
2834
14.4k
      return settings->GatewayAvdHubdiscoverygeourl;
2835
2836
14.4k
    case FreeRDP_GatewayAvdScope:
2837
14.4k
      return settings->GatewayAvdScope;
2838
2839
14.4k
    case FreeRDP_GatewayAvdWvdEndpointPool:
2840
14.4k
      return settings->GatewayAvdWvdEndpointPool;
2841
2842
14.4k
    case FreeRDP_GatewayAzureActiveDirectory:
2843
14.4k
      return settings->GatewayAzureActiveDirectory;
2844
2845
14.4k
    case FreeRDP_GatewayDomain:
2846
14.4k
      return settings->GatewayDomain;
2847
2848
14.4k
    case FreeRDP_GatewayHostname:
2849
14.4k
      return settings->GatewayHostname;
2850
2851
14.4k
    case FreeRDP_GatewayHttpExtAuthBearer:
2852
14.4k
      return settings->GatewayHttpExtAuthBearer;
2853
2854
14.4k
    case FreeRDP_GatewayHttpMsUserAgent:
2855
14.4k
      return settings->GatewayHttpMsUserAgent;
2856
2857
14.4k
    case FreeRDP_GatewayHttpReferer:
2858
14.4k
      return settings->GatewayHttpReferer;
2859
2860
14.4k
    case FreeRDP_GatewayHttpUserAgent:
2861
14.4k
      return settings->GatewayHttpUserAgent;
2862
2863
14.4k
    case FreeRDP_GatewayPassword:
2864
14.4k
      return settings->GatewayPassword;
2865
2866
14.4k
    case FreeRDP_GatewayUrl:
2867
14.4k
      return settings->GatewayUrl;
2868
2869
14.4k
    case FreeRDP_GatewayUsername:
2870
14.4k
      return settings->GatewayUsername;
2871
2872
57.7k
    case FreeRDP_HomePath:
2873
57.7k
      return settings->HomePath;
2874
2875
14.4k
    case FreeRDP_ImeFileName:
2876
14.4k
      return settings->ImeFileName;
2877
2878
14.4k
    case FreeRDP_KerberosArmor:
2879
14.4k
      return settings->KerberosArmor;
2880
2881
14.4k
    case FreeRDP_KerberosCache:
2882
14.4k
      return settings->KerberosCache;
2883
2884
14.4k
    case FreeRDP_KerberosKdcUrl:
2885
14.4k
      return settings->KerberosKdcUrl;
2886
2887
14.4k
    case FreeRDP_KerberosKeytab:
2888
14.4k
      return settings->KerberosKeytab;
2889
2890
14.4k
    case FreeRDP_KerberosLifeTime:
2891
14.4k
      return settings->KerberosLifeTime;
2892
2893
14.4k
    case FreeRDP_KerberosRealm:
2894
14.4k
      return settings->KerberosRealm;
2895
2896
14.4k
    case FreeRDP_KerberosRenewableLifeTime:
2897
14.4k
      return settings->KerberosRenewableLifeTime;
2898
2899
14.4k
    case FreeRDP_KerberosStartTime:
2900
14.4k
      return settings->KerberosStartTime;
2901
2902
14.4k
    case FreeRDP_KeyboardPipeName:
2903
14.4k
      return settings->KeyboardPipeName;
2904
2905
14.4k
    case FreeRDP_KeyboardRemappingList:
2906
14.4k
      return settings->KeyboardRemappingList;
2907
2908
14.4k
    case FreeRDP_NtlmSamFile:
2909
14.4k
      return settings->NtlmSamFile;
2910
2911
14.4k
    case FreeRDP_Password:
2912
14.4k
      return settings->Password;
2913
2914
14.4k
    case FreeRDP_PasswordHash:
2915
14.4k
      return settings->PasswordHash;
2916
2917
14.4k
    case FreeRDP_Pkcs11Module:
2918
14.4k
      return settings->Pkcs11Module;
2919
2920
14.4k
    case FreeRDP_PkinitAnchors:
2921
14.4k
      return settings->PkinitAnchors;
2922
2923
14.4k
    case FreeRDP_PlayRemoteFxFile:
2924
14.4k
      return settings->PlayRemoteFxFile;
2925
2926
14.4k
    case FreeRDP_PreconnectionBlob:
2927
14.4k
      return settings->PreconnectionBlob;
2928
2929
14.4k
    case FreeRDP_ProxyHostname:
2930
14.4k
      return settings->ProxyHostname;
2931
2932
14.4k
    case FreeRDP_ProxyPassword:
2933
14.4k
      return settings->ProxyPassword;
2934
2935
14.4k
    case FreeRDP_ProxyUsername:
2936
14.4k
      return settings->ProxyUsername;
2937
2938
14.4k
    case FreeRDP_RDP2TCPArgs:
2939
14.4k
      return settings->RDP2TCPArgs;
2940
2941
14.4k
    case FreeRDP_ReaderName:
2942
14.4k
      return settings->ReaderName;
2943
2944
14.4k
    case FreeRDP_RedirectionAcceptedCert:
2945
14.4k
      return settings->RedirectionAcceptedCert;
2946
2947
14.4k
    case FreeRDP_RedirectionDomain:
2948
14.4k
      return settings->RedirectionDomain;
2949
2950
14.4k
    case FreeRDP_RedirectionTargetFQDN:
2951
14.4k
      return settings->RedirectionTargetFQDN;
2952
2953
14.4k
    case FreeRDP_RedirectionTargetNetBiosName:
2954
14.4k
      return settings->RedirectionTargetNetBiosName;
2955
2956
14.4k
    case FreeRDP_RedirectionUsername:
2957
14.4k
      return settings->RedirectionUsername;
2958
2959
14.4k
    case FreeRDP_RemoteApplicationCmdLine:
2960
14.4k
      return settings->RemoteApplicationCmdLine;
2961
2962
14.4k
    case FreeRDP_RemoteApplicationFile:
2963
14.4k
      return settings->RemoteApplicationFile;
2964
2965
14.4k
    case FreeRDP_RemoteApplicationGuid:
2966
14.4k
      return settings->RemoteApplicationGuid;
2967
2968
14.4k
    case FreeRDP_RemoteApplicationIcon:
2969
14.4k
      return settings->RemoteApplicationIcon;
2970
2971
14.4k
    case FreeRDP_RemoteApplicationName:
2972
14.4k
      return settings->RemoteApplicationName;
2973
2974
14.4k
    case FreeRDP_RemoteApplicationProgram:
2975
14.4k
      return settings->RemoteApplicationProgram;
2976
2977
14.4k
    case FreeRDP_RemoteApplicationWorkingDir:
2978
14.4k
      return settings->RemoteApplicationWorkingDir;
2979
2980
14.4k
    case FreeRDP_RemoteAssistancePassStub:
2981
14.4k
      return settings->RemoteAssistancePassStub;
2982
2983
14.4k
    case FreeRDP_RemoteAssistancePassword:
2984
14.4k
      return settings->RemoteAssistancePassword;
2985
2986
14.4k
    case FreeRDP_RemoteAssistanceRCTicket:
2987
14.4k
      return settings->RemoteAssistanceRCTicket;
2988
2989
14.4k
    case FreeRDP_RemoteAssistanceSessionId:
2990
14.4k
      return settings->RemoteAssistanceSessionId;
2991
2992
14.4k
    case FreeRDP_ServerHostname:
2993
14.4k
      return settings->ServerHostname;
2994
2995
14.4k
    case FreeRDP_ServerLicenseCompanyName:
2996
14.4k
      return settings->ServerLicenseCompanyName;
2997
2998
14.4k
    case FreeRDP_ServerLicenseProductName:
2999
14.4k
      return settings->ServerLicenseProductName;
3000
3001
14.4k
    case FreeRDP_ShellWorkingDirectory:
3002
14.4k
      return settings->ShellWorkingDirectory;
3003
3004
14.4k
    case FreeRDP_SmartcardCertificate:
3005
14.4k
      return settings->SmartcardCertificate;
3006
3007
14.4k
    case FreeRDP_SmartcardPrivateKey:
3008
14.4k
      return settings->SmartcardPrivateKey;
3009
3010
14.4k
    case FreeRDP_SspiModule:
3011
14.4k
      return settings->SspiModule;
3012
3013
14.4k
    case FreeRDP_TargetNetAddress:
3014
14.4k
      return settings->TargetNetAddress;
3015
3016
14.4k
    case FreeRDP_TerminalDescriptor:
3017
14.4k
      return settings->TerminalDescriptor;
3018
3019
14.4k
    case FreeRDP_TlsSecretsFile:
3020
14.4k
      return settings->TlsSecretsFile;
3021
3022
14.4k
    case FreeRDP_TransportDumpFile:
3023
14.4k
      return settings->TransportDumpFile;
3024
3025
14.4k
    case FreeRDP_UserSpecifiedServerName:
3026
14.4k
      return settings->UserSpecifiedServerName;
3027
3028
14.4k
    case FreeRDP_Username:
3029
14.4k
      return settings->Username;
3030
3031
14.4k
    case FreeRDP_WinSCardModule:
3032
14.4k
      return settings->WinSCardModule;
3033
3034
14.4k
    case FreeRDP_WindowTitle:
3035
14.4k
      return settings->WindowTitle;
3036
3037
14.4k
    case FreeRDP_WmClass:
3038
14.4k
      return settings->WmClass;
3039
3040
0
    default:
3041
0
      WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
3042
0
               freerdp_settings_get_type_name_for_key(id));
3043
0
      WINPR_ASSERT(FALSE);
3044
0
      return NULL;
3045
1.64M
  }
3046
1.64M
}
3047
3048
char* freerdp_settings_get_string_writable(rdpSettings* settings, FreeRDP_Settings_Keys_String id)
3049
0
{
3050
0
  WINPR_ASSERT(settings);
3051
3052
0
  switch (id)
3053
0
  {
3054
0
    case FreeRDP_AadServerHostname:
3055
0
      return settings->AadServerHostname;
3056
3057
0
    case FreeRDP_AcceptedCert:
3058
0
      return settings->AcceptedCert;
3059
3060
0
    case FreeRDP_ActionScript:
3061
0
      return settings->ActionScript;
3062
3063
0
    case FreeRDP_AllowedTlsCiphers:
3064
0
      return settings->AllowedTlsCiphers;
3065
3066
0
    case FreeRDP_AlternateShell:
3067
0
      return settings->AlternateShell;
3068
3069
0
    case FreeRDP_AssistanceFile:
3070
0
      return settings->AssistanceFile;
3071
3072
0
    case FreeRDP_AuthenticationPackageList:
3073
0
      return settings->AuthenticationPackageList;
3074
3075
0
    case FreeRDP_AuthenticationServiceClass:
3076
0
      return settings->AuthenticationServiceClass;
3077
3078
0
    case FreeRDP_BitmapCachePersistFile:
3079
0
      return settings->BitmapCachePersistFile;
3080
3081
0
    case FreeRDP_CardName:
3082
0
      return settings->CardName;
3083
3084
0
    case FreeRDP_CertificateAcceptedFingerprints:
3085
0
      return settings->CertificateAcceptedFingerprints;
3086
3087
0
    case FreeRDP_CertificateName:
3088
0
      return settings->CertificateName;
3089
3090
0
    case FreeRDP_ClientAddress:
3091
0
      return settings->ClientAddress;
3092
3093
0
    case FreeRDP_ClientDir:
3094
0
      return settings->ClientDir;
3095
3096
0
    case FreeRDP_ClientHostname:
3097
0
      return settings->ClientHostname;
3098
3099
0
    case FreeRDP_ClientProductId:
3100
0
      return settings->ClientProductId;
3101
3102
0
    case FreeRDP_ClipboardUseSelection:
3103
0
      return settings->ClipboardUseSelection;
3104
3105
0
    case FreeRDP_ComputerName:
3106
0
      return settings->ComputerName;
3107
3108
0
    case FreeRDP_ConfigPath:
3109
0
      return settings->ConfigPath;
3110
3111
0
    case FreeRDP_ConnectionFile:
3112
0
      return settings->ConnectionFile;
3113
3114
0
    case FreeRDP_ContainerName:
3115
0
      return settings->ContainerName;
3116
3117
0
    case FreeRDP_CspName:
3118
0
      return settings->CspName;
3119
3120
0
    case FreeRDP_CurrentPath:
3121
0
      return settings->CurrentPath;
3122
3123
0
    case FreeRDP_Domain:
3124
0
      return settings->Domain;
3125
3126
0
    case FreeRDP_DrivesToRedirect:
3127
0
      return settings->DrivesToRedirect;
3128
3129
0
    case FreeRDP_DumpRemoteFxFile:
3130
0
      return settings->DumpRemoteFxFile;
3131
3132
0
    case FreeRDP_DynamicDSTTimeZoneKeyName:
3133
0
      return settings->DynamicDSTTimeZoneKeyName;
3134
3135
0
    case FreeRDP_GatewayAcceptedCert:
3136
0
      return settings->GatewayAcceptedCert;
3137
3138
0
    case FreeRDP_GatewayAccessToken:
3139
0
      return settings->GatewayAccessToken;
3140
3141
0
    case FreeRDP_GatewayAvdAadtenantid:
3142
0
      return settings->GatewayAvdAadtenantid;
3143
3144
0
    case FreeRDP_GatewayAvdAccessAadFormat:
3145
0
      return settings->GatewayAvdAccessAadFormat;
3146
3147
0
    case FreeRDP_GatewayAvdAccessTokenFormat:
3148
0
      return settings->GatewayAvdAccessTokenFormat;
3149
3150
0
    case FreeRDP_GatewayAvdActivityhint:
3151
0
      return settings->GatewayAvdActivityhint;
3152
3153
0
    case FreeRDP_GatewayAvdArmpath:
3154
0
      return settings->GatewayAvdArmpath;
3155
3156
0
    case FreeRDP_GatewayAvdClientID:
3157
0
      return settings->GatewayAvdClientID;
3158
3159
0
    case FreeRDP_GatewayAvdDiagnosticserviceurl:
3160
0
      return settings->GatewayAvdDiagnosticserviceurl;
3161
3162
0
    case FreeRDP_GatewayAvdGeo:
3163
0
      return settings->GatewayAvdGeo;
3164
3165
0
    case FreeRDP_GatewayAvdHubdiscoverygeourl:
3166
0
      return settings->GatewayAvdHubdiscoverygeourl;
3167
3168
0
    case FreeRDP_GatewayAvdScope:
3169
0
      return settings->GatewayAvdScope;
3170
3171
0
    case FreeRDP_GatewayAvdWvdEndpointPool:
3172
0
      return settings->GatewayAvdWvdEndpointPool;
3173
3174
0
    case FreeRDP_GatewayAzureActiveDirectory:
3175
0
      return settings->GatewayAzureActiveDirectory;
3176
3177
0
    case FreeRDP_GatewayDomain:
3178
0
      return settings->GatewayDomain;
3179
3180
0
    case FreeRDP_GatewayHostname:
3181
0
      return settings->GatewayHostname;
3182
3183
0
    case FreeRDP_GatewayHttpExtAuthBearer:
3184
0
      return settings->GatewayHttpExtAuthBearer;
3185
3186
0
    case FreeRDP_GatewayHttpMsUserAgent:
3187
0
      return settings->GatewayHttpMsUserAgent;
3188
3189
0
    case FreeRDP_GatewayHttpReferer:
3190
0
      return settings->GatewayHttpReferer;
3191
3192
0
    case FreeRDP_GatewayHttpUserAgent:
3193
0
      return settings->GatewayHttpUserAgent;
3194
3195
0
    case FreeRDP_GatewayPassword:
3196
0
      return settings->GatewayPassword;
3197
3198
0
    case FreeRDP_GatewayUrl:
3199
0
      return settings->GatewayUrl;
3200
3201
0
    case FreeRDP_GatewayUsername:
3202
0
      return settings->GatewayUsername;
3203
3204
0
    case FreeRDP_HomePath:
3205
0
      return settings->HomePath;
3206
3207
0
    case FreeRDP_ImeFileName:
3208
0
      return settings->ImeFileName;
3209
3210
0
    case FreeRDP_KerberosArmor:
3211
0
      return settings->KerberosArmor;
3212
3213
0
    case FreeRDP_KerberosCache:
3214
0
      return settings->KerberosCache;
3215
3216
0
    case FreeRDP_KerberosKdcUrl:
3217
0
      return settings->KerberosKdcUrl;
3218
3219
0
    case FreeRDP_KerberosKeytab:
3220
0
      return settings->KerberosKeytab;
3221
3222
0
    case FreeRDP_KerberosLifeTime:
3223
0
      return settings->KerberosLifeTime;
3224
3225
0
    case FreeRDP_KerberosRealm:
3226
0
      return settings->KerberosRealm;
3227
3228
0
    case FreeRDP_KerberosRenewableLifeTime:
3229
0
      return settings->KerberosRenewableLifeTime;
3230
3231
0
    case FreeRDP_KerberosStartTime:
3232
0
      return settings->KerberosStartTime;
3233
3234
0
    case FreeRDP_KeyboardPipeName:
3235
0
      return settings->KeyboardPipeName;
3236
3237
0
    case FreeRDP_KeyboardRemappingList:
3238
0
      return settings->KeyboardRemappingList;
3239
3240
0
    case FreeRDP_NtlmSamFile:
3241
0
      return settings->NtlmSamFile;
3242
3243
0
    case FreeRDP_Password:
3244
0
      return settings->Password;
3245
3246
0
    case FreeRDP_PasswordHash:
3247
0
      return settings->PasswordHash;
3248
3249
0
    case FreeRDP_Pkcs11Module:
3250
0
      return settings->Pkcs11Module;
3251
3252
0
    case FreeRDP_PkinitAnchors:
3253
0
      return settings->PkinitAnchors;
3254
3255
0
    case FreeRDP_PlayRemoteFxFile:
3256
0
      return settings->PlayRemoteFxFile;
3257
3258
0
    case FreeRDP_PreconnectionBlob:
3259
0
      return settings->PreconnectionBlob;
3260
3261
0
    case FreeRDP_ProxyHostname:
3262
0
      return settings->ProxyHostname;
3263
3264
0
    case FreeRDP_ProxyPassword:
3265
0
      return settings->ProxyPassword;
3266
3267
0
    case FreeRDP_ProxyUsername:
3268
0
      return settings->ProxyUsername;
3269
3270
0
    case FreeRDP_RDP2TCPArgs:
3271
0
      return settings->RDP2TCPArgs;
3272
3273
0
    case FreeRDP_ReaderName:
3274
0
      return settings->ReaderName;
3275
3276
0
    case FreeRDP_RedirectionAcceptedCert:
3277
0
      return settings->RedirectionAcceptedCert;
3278
3279
0
    case FreeRDP_RedirectionDomain:
3280
0
      return settings->RedirectionDomain;
3281
3282
0
    case FreeRDP_RedirectionTargetFQDN:
3283
0
      return settings->RedirectionTargetFQDN;
3284
3285
0
    case FreeRDP_RedirectionTargetNetBiosName:
3286
0
      return settings->RedirectionTargetNetBiosName;
3287
3288
0
    case FreeRDP_RedirectionUsername:
3289
0
      return settings->RedirectionUsername;
3290
3291
0
    case FreeRDP_RemoteApplicationCmdLine:
3292
0
      return settings->RemoteApplicationCmdLine;
3293
3294
0
    case FreeRDP_RemoteApplicationFile:
3295
0
      return settings->RemoteApplicationFile;
3296
3297
0
    case FreeRDP_RemoteApplicationGuid:
3298
0
      return settings->RemoteApplicationGuid;
3299
3300
0
    case FreeRDP_RemoteApplicationIcon:
3301
0
      return settings->RemoteApplicationIcon;
3302
3303
0
    case FreeRDP_RemoteApplicationName:
3304
0
      return settings->RemoteApplicationName;
3305
3306
0
    case FreeRDP_RemoteApplicationProgram:
3307
0
      return settings->RemoteApplicationProgram;
3308
3309
0
    case FreeRDP_RemoteApplicationWorkingDir:
3310
0
      return settings->RemoteApplicationWorkingDir;
3311
3312
0
    case FreeRDP_RemoteAssistancePassStub:
3313
0
      return settings->RemoteAssistancePassStub;
3314
3315
0
    case FreeRDP_RemoteAssistancePassword:
3316
0
      return settings->RemoteAssistancePassword;
3317
3318
0
    case FreeRDP_RemoteAssistanceRCTicket:
3319
0
      return settings->RemoteAssistanceRCTicket;
3320
3321
0
    case FreeRDP_RemoteAssistanceSessionId:
3322
0
      return settings->RemoteAssistanceSessionId;
3323
3324
0
    case FreeRDP_ServerHostname:
3325
0
      return settings->ServerHostname;
3326
3327
0
    case FreeRDP_ServerLicenseCompanyName:
3328
0
      return settings->ServerLicenseCompanyName;
3329
3330
0
    case FreeRDP_ServerLicenseProductName:
3331
0
      return settings->ServerLicenseProductName;
3332
3333
0
    case FreeRDP_ShellWorkingDirectory:
3334
0
      return settings->ShellWorkingDirectory;
3335
3336
0
    case FreeRDP_SmartcardCertificate:
3337
0
      return settings->SmartcardCertificate;
3338
3339
0
    case FreeRDP_SmartcardPrivateKey:
3340
0
      return settings->SmartcardPrivateKey;
3341
3342
0
    case FreeRDP_SspiModule:
3343
0
      return settings->SspiModule;
3344
3345
0
    case FreeRDP_TargetNetAddress:
3346
0
      return settings->TargetNetAddress;
3347
3348
0
    case FreeRDP_TerminalDescriptor:
3349
0
      return settings->TerminalDescriptor;
3350
3351
0
    case FreeRDP_TlsSecretsFile:
3352
0
      return settings->TlsSecretsFile;
3353
3354
0
    case FreeRDP_TransportDumpFile:
3355
0
      return settings->TransportDumpFile;
3356
3357
0
    case FreeRDP_UserSpecifiedServerName:
3358
0
      return settings->UserSpecifiedServerName;
3359
3360
0
    case FreeRDP_Username:
3361
0
      return settings->Username;
3362
3363
0
    case FreeRDP_WinSCardModule:
3364
0
      return settings->WinSCardModule;
3365
3366
0
    case FreeRDP_WindowTitle:
3367
0
      return settings->WindowTitle;
3368
3369
0
    case FreeRDP_WmClass:
3370
0
      return settings->WmClass;
3371
3372
0
    default:
3373
0
      WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
3374
0
               freerdp_settings_get_type_name_for_key(id));
3375
0
      WINPR_ASSERT(FALSE);
3376
0
      return NULL;
3377
0
  }
3378
0
}
3379
3380
BOOL freerdp_settings_set_string_(WINPR_ATTR_UNUSED rdpSettings* settings,
3381
                                  WINPR_ATTR_UNUSED FreeRDP_Settings_Keys_String id,
3382
                                  const char* val, size_t len)
3383
43.5k
{
3384
43.5k
  union
3385
43.5k
  {
3386
43.5k
    void* v;
3387
43.5k
    const void* cv;
3388
43.5k
    char* c;
3389
43.5k
    const char* cc;
3390
43.5k
  } cnv;
3391
43.5k
  WINPR_ASSERT(settings);
3392
3393
43.5k
  cnv.cc = val;
3394
3395
43.5k
  switch (id)
3396
43.5k
  {
3397
0
    case FreeRDP_AadServerHostname:
3398
0
      return update_string_(&settings->AadServerHostname, cnv.c, len);
3399
3400
0
    case FreeRDP_AcceptedCert:
3401
0
      return update_string_(&settings->AcceptedCert, cnv.c, len);
3402
3403
0
    case FreeRDP_ActionScript:
3404
0
      return update_string_(&settings->ActionScript, cnv.c, len);
3405
3406
0
    case FreeRDP_AllowedTlsCiphers:
3407
0
      return update_string_(&settings->AllowedTlsCiphers, cnv.c, len);
3408
3409
8
    case FreeRDP_AlternateShell:
3410
8
      return update_string_(&settings->AlternateShell, cnv.c, len);
3411
3412
0
    case FreeRDP_AssistanceFile:
3413
0
      return update_string_(&settings->AssistanceFile, cnv.c, len);
3414
3415
0
    case FreeRDP_AuthenticationPackageList:
3416
0
      return update_string_(&settings->AuthenticationPackageList, cnv.c, len);
3417
3418
0
    case FreeRDP_AuthenticationServiceClass:
3419
0
      return update_string_(&settings->AuthenticationServiceClass, cnv.c, len);
3420
3421
0
    case FreeRDP_BitmapCachePersistFile:
3422
0
      return update_string_(&settings->BitmapCachePersistFile, cnv.c, len);
3423
3424
0
    case FreeRDP_CardName:
3425
0
      return update_string_(&settings->CardName, cnv.c, len);
3426
3427
0
    case FreeRDP_CertificateAcceptedFingerprints:
3428
0
      return update_string_(&settings->CertificateAcceptedFingerprints, cnv.c, len);
3429
3430
0
    case FreeRDP_CertificateName:
3431
0
      return update_string_(&settings->CertificateName, cnv.c, len);
3432
3433
63
    case FreeRDP_ClientAddress:
3434
63
      return update_string_(&settings->ClientAddress, cnv.c, len);
3435
3436
43
    case FreeRDP_ClientDir:
3437
43
      return update_string_(&settings->ClientDir, cnv.c, len);
3438
3439
0
    case FreeRDP_ClientHostname:
3440
0
      return update_string_(&settings->ClientHostname, cnv.c, len);
3441
3442
0
    case FreeRDP_ClientProductId:
3443
0
      return update_string_(&settings->ClientProductId, cnv.c, len);
3444
3445
0
    case FreeRDP_ClipboardUseSelection:
3446
0
      return update_string_(&settings->ClipboardUseSelection, cnv.c, len);
3447
3448
0
    case FreeRDP_ComputerName:
3449
0
      return update_string_(&settings->ComputerName, cnv.c, len);
3450
3451
0
    case FreeRDP_ConfigPath:
3452
0
      return update_string_(&settings->ConfigPath, cnv.c, len);
3453
3454
0
    case FreeRDP_ConnectionFile:
3455
0
      return update_string_(&settings->ConnectionFile, cnv.c, len);
3456
3457
0
    case FreeRDP_ContainerName:
3458
0
      return update_string_(&settings->ContainerName, cnv.c, len);
3459
3460
0
    case FreeRDP_CspName:
3461
0
      return update_string_(&settings->CspName, cnv.c, len);
3462
3463
0
    case FreeRDP_CurrentPath:
3464
0
      return update_string_(&settings->CurrentPath, cnv.c, len);
3465
3466
101
    case FreeRDP_Domain:
3467
101
      return update_string_(&settings->Domain, cnv.c, len);
3468
3469
0
    case FreeRDP_DrivesToRedirect:
3470
0
      return update_string_(&settings->DrivesToRedirect, cnv.c, len);
3471
3472
0
    case FreeRDP_DumpRemoteFxFile:
3473
0
      return update_string_(&settings->DumpRemoteFxFile, cnv.c, len);
3474
3475
43.3k
    case FreeRDP_DynamicDSTTimeZoneKeyName:
3476
43.3k
      return update_string_(&settings->DynamicDSTTimeZoneKeyName, cnv.c, len);
3477
3478
0
    case FreeRDP_GatewayAcceptedCert:
3479
0
      return update_string_(&settings->GatewayAcceptedCert, cnv.c, len);
3480
3481
0
    case FreeRDP_GatewayAccessToken:
3482
0
      return update_string_(&settings->GatewayAccessToken, cnv.c, len);
3483
3484
0
    case FreeRDP_GatewayAvdAadtenantid:
3485
0
      return update_string_(&settings->GatewayAvdAadtenantid, cnv.c, len);
3486
3487
0
    case FreeRDP_GatewayAvdAccessAadFormat:
3488
0
      return update_string_(&settings->GatewayAvdAccessAadFormat, cnv.c, len);
3489
3490
0
    case FreeRDP_GatewayAvdAccessTokenFormat:
3491
0
      return update_string_(&settings->GatewayAvdAccessTokenFormat, cnv.c, len);
3492
3493
0
    case FreeRDP_GatewayAvdActivityhint:
3494
0
      return update_string_(&settings->GatewayAvdActivityhint, cnv.c, len);
3495
3496
0
    case FreeRDP_GatewayAvdArmpath:
3497
0
      return update_string_(&settings->GatewayAvdArmpath, cnv.c, len);
3498
3499
0
    case FreeRDP_GatewayAvdClientID:
3500
0
      return update_string_(&settings->GatewayAvdClientID, cnv.c, len);
3501
3502
0
    case FreeRDP_GatewayAvdDiagnosticserviceurl:
3503
0
      return update_string_(&settings->GatewayAvdDiagnosticserviceurl, cnv.c, len);
3504
3505
0
    case FreeRDP_GatewayAvdGeo:
3506
0
      return update_string_(&settings->GatewayAvdGeo, cnv.c, len);
3507
3508
0
    case FreeRDP_GatewayAvdHubdiscoverygeourl:
3509
0
      return update_string_(&settings->GatewayAvdHubdiscoverygeourl, cnv.c, len);
3510
3511
0
    case FreeRDP_GatewayAvdScope:
3512
0
      return update_string_(&settings->GatewayAvdScope, cnv.c, len);
3513
3514
0
    case FreeRDP_GatewayAvdWvdEndpointPool:
3515
0
      return update_string_(&settings->GatewayAvdWvdEndpointPool, cnv.c, len);
3516
3517
0
    case FreeRDP_GatewayAzureActiveDirectory:
3518
0
      return update_string_(&settings->GatewayAzureActiveDirectory, cnv.c, len);
3519
3520
0
    case FreeRDP_GatewayDomain:
3521
0
      return update_string_(&settings->GatewayDomain, cnv.c, len);
3522
3523
0
    case FreeRDP_GatewayHostname:
3524
0
      return update_string_(&settings->GatewayHostname, cnv.c, len);
3525
3526
0
    case FreeRDP_GatewayHttpExtAuthBearer:
3527
0
      return update_string_(&settings->GatewayHttpExtAuthBearer, cnv.c, len);
3528
3529
0
    case FreeRDP_GatewayHttpMsUserAgent:
3530
0
      return update_string_(&settings->GatewayHttpMsUserAgent, cnv.c, len);
3531
3532
0
    case FreeRDP_GatewayHttpReferer:
3533
0
      return update_string_(&settings->GatewayHttpReferer, cnv.c, len);
3534
3535
0
    case FreeRDP_GatewayHttpUserAgent:
3536
0
      return update_string_(&settings->GatewayHttpUserAgent, cnv.c, len);
3537
3538
0
    case FreeRDP_GatewayPassword:
3539
0
      return update_string_(&settings->GatewayPassword, cnv.c, len);
3540
3541
0
    case FreeRDP_GatewayUrl:
3542
0
      return update_string_(&settings->GatewayUrl, cnv.c, len);
3543
3544
0
    case FreeRDP_GatewayUsername:
3545
0
      return update_string_(&settings->GatewayUsername, cnv.c, len);
3546
3547
0
    case FreeRDP_HomePath:
3548
0
      return update_string_(&settings->HomePath, cnv.c, len);
3549
3550
0
    case FreeRDP_ImeFileName:
3551
0
      return update_string_(&settings->ImeFileName, cnv.c, len);
3552
3553
0
    case FreeRDP_KerberosArmor:
3554
0
      return update_string_(&settings->KerberosArmor, cnv.c, len);
3555
3556
0
    case FreeRDP_KerberosCache:
3557
0
      return update_string_(&settings->KerberosCache, cnv.c, len);
3558
3559
0
    case FreeRDP_KerberosKdcUrl:
3560
0
      return update_string_(&settings->KerberosKdcUrl, cnv.c, len);
3561
3562
0
    case FreeRDP_KerberosKeytab:
3563
0
      return update_string_(&settings->KerberosKeytab, cnv.c, len);
3564
3565
0
    case FreeRDP_KerberosLifeTime:
3566
0
      return update_string_(&settings->KerberosLifeTime, cnv.c, len);
3567
3568
0
    case FreeRDP_KerberosRealm:
3569
0
      return update_string_(&settings->KerberosRealm, cnv.c, len);
3570
3571
0
    case FreeRDP_KerberosRenewableLifeTime:
3572
0
      return update_string_(&settings->KerberosRenewableLifeTime, cnv.c, len);
3573
3574
0
    case FreeRDP_KerberosStartTime:
3575
0
      return update_string_(&settings->KerberosStartTime, cnv.c, len);
3576
3577
0
    case FreeRDP_KeyboardPipeName:
3578
0
      return update_string_(&settings->KeyboardPipeName, cnv.c, len);
3579
3580
0
    case FreeRDP_KeyboardRemappingList:
3581
0
      return update_string_(&settings->KeyboardRemappingList, cnv.c, len);
3582
3583
0
    case FreeRDP_NtlmSamFile:
3584
0
      return update_string_(&settings->NtlmSamFile, cnv.c, len);
3585
3586
12
    case FreeRDP_Password:
3587
12
      return update_string_(&settings->Password, cnv.c, len);
3588
3589
0
    case FreeRDP_PasswordHash:
3590
0
      return update_string_(&settings->PasswordHash, cnv.c, len);
3591
3592
0
    case FreeRDP_Pkcs11Module:
3593
0
      return update_string_(&settings->Pkcs11Module, cnv.c, len);
3594
3595
0
    case FreeRDP_PkinitAnchors:
3596
0
      return update_string_(&settings->PkinitAnchors, cnv.c, len);
3597
3598
0
    case FreeRDP_PlayRemoteFxFile:
3599
0
      return update_string_(&settings->PlayRemoteFxFile, cnv.c, len);
3600
3601
0
    case FreeRDP_PreconnectionBlob:
3602
0
      return update_string_(&settings->PreconnectionBlob, cnv.c, len);
3603
3604
0
    case FreeRDP_ProxyHostname:
3605
0
      return update_string_(&settings->ProxyHostname, cnv.c, len);
3606
3607
0
    case FreeRDP_ProxyPassword:
3608
0
      return update_string_(&settings->ProxyPassword, cnv.c, len);
3609
3610
0
    case FreeRDP_ProxyUsername:
3611
0
      return update_string_(&settings->ProxyUsername, cnv.c, len);
3612
3613
0
    case FreeRDP_RDP2TCPArgs:
3614
0
      return update_string_(&settings->RDP2TCPArgs, cnv.c, len);
3615
3616
0
    case FreeRDP_ReaderName:
3617
0
      return update_string_(&settings->ReaderName, cnv.c, len);
3618
3619
0
    case FreeRDP_RedirectionAcceptedCert:
3620
0
      return update_string_(&settings->RedirectionAcceptedCert, cnv.c, len);
3621
3622
0
    case FreeRDP_RedirectionDomain:
3623
0
      return update_string_(&settings->RedirectionDomain, cnv.c, len);
3624
3625
0
    case FreeRDP_RedirectionTargetFQDN:
3626
0
      return update_string_(&settings->RedirectionTargetFQDN, cnv.c, len);
3627
3628
0
    case FreeRDP_RedirectionTargetNetBiosName:
3629
0
      return update_string_(&settings->RedirectionTargetNetBiosName, cnv.c, len);
3630
3631
0
    case FreeRDP_RedirectionUsername:
3632
0
      return update_string_(&settings->RedirectionUsername, cnv.c, len);
3633
3634
0
    case FreeRDP_RemoteApplicationCmdLine:
3635
0
      return update_string_(&settings->RemoteApplicationCmdLine, cnv.c, len);
3636
3637
0
    case FreeRDP_RemoteApplicationFile:
3638
0
      return update_string_(&settings->RemoteApplicationFile, cnv.c, len);
3639
3640
0
    case FreeRDP_RemoteApplicationGuid:
3641
0
      return update_string_(&settings->RemoteApplicationGuid, cnv.c, len);
3642
3643
0
    case FreeRDP_RemoteApplicationIcon:
3644
0
      return update_string_(&settings->RemoteApplicationIcon, cnv.c, len);
3645
3646
0
    case FreeRDP_RemoteApplicationName:
3647
0
      return update_string_(&settings->RemoteApplicationName, cnv.c, len);
3648
3649
0
    case FreeRDP_RemoteApplicationProgram:
3650
0
      return update_string_(&settings->RemoteApplicationProgram, cnv.c, len);
3651
3652
0
    case FreeRDP_RemoteApplicationWorkingDir:
3653
0
      return update_string_(&settings->RemoteApplicationWorkingDir, cnv.c, len);
3654
3655
0
    case FreeRDP_RemoteAssistancePassStub:
3656
0
      return update_string_(&settings->RemoteAssistancePassStub, cnv.c, len);
3657
3658
0
    case FreeRDP_RemoteAssistancePassword:
3659
0
      return update_string_(&settings->RemoteAssistancePassword, cnv.c, len);
3660
3661
0
    case FreeRDP_RemoteAssistanceRCTicket:
3662
0
      return update_string_(&settings->RemoteAssistanceRCTicket, cnv.c, len);
3663
3664
0
    case FreeRDP_RemoteAssistanceSessionId:
3665
0
      return update_string_(&settings->RemoteAssistanceSessionId, cnv.c, len);
3666
3667
0
    case FreeRDP_ServerHostname:
3668
0
      return update_string_(&settings->ServerHostname, cnv.c, len);
3669
3670
0
    case FreeRDP_ServerLicenseCompanyName:
3671
0
      return update_string_(&settings->ServerLicenseCompanyName, cnv.c, len);
3672
3673
0
    case FreeRDP_ServerLicenseProductName:
3674
0
      return update_string_(&settings->ServerLicenseProductName, cnv.c, len);
3675
3676
5
    case FreeRDP_ShellWorkingDirectory:
3677
5
      return update_string_(&settings->ShellWorkingDirectory, cnv.c, len);
3678
3679
0
    case FreeRDP_SmartcardCertificate:
3680
0
      return update_string_(&settings->SmartcardCertificate, cnv.c, len);
3681
3682
0
    case FreeRDP_SmartcardPrivateKey:
3683
0
      return update_string_(&settings->SmartcardPrivateKey, cnv.c, len);
3684
3685
0
    case FreeRDP_SspiModule:
3686
0
      return update_string_(&settings->SspiModule, cnv.c, len);
3687
3688
0
    case FreeRDP_TargetNetAddress:
3689
0
      return update_string_(&settings->TargetNetAddress, cnv.c, len);
3690
3691
0
    case FreeRDP_TerminalDescriptor:
3692
0
      return update_string_(&settings->TerminalDescriptor, cnv.c, len);
3693
3694
0
    case FreeRDP_TlsSecretsFile:
3695
0
      return update_string_(&settings->TlsSecretsFile, cnv.c, len);
3696
3697
0
    case FreeRDP_TransportDumpFile:
3698
0
      return update_string_(&settings->TransportDumpFile, cnv.c, len);
3699
3700
0
    case FreeRDP_UserSpecifiedServerName:
3701
0
      return update_string_(&settings->UserSpecifiedServerName, cnv.c, len);
3702
3703
15
    case FreeRDP_Username:
3704
15
      return update_string_(&settings->Username, cnv.c, len);
3705
3706
0
    case FreeRDP_WinSCardModule:
3707
0
      return update_string_(&settings->WinSCardModule, cnv.c, len);
3708
3709
0
    case FreeRDP_WindowTitle:
3710
0
      return update_string_(&settings->WindowTitle, cnv.c, len);
3711
3712
0
    case FreeRDP_WmClass:
3713
0
      return update_string_(&settings->WmClass, cnv.c, len);
3714
3715
0
    default:
3716
0
      WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
3717
0
               freerdp_settings_get_type_name_for_key(id));
3718
0
      return FALSE;
3719
43.5k
  }
3720
0
  return TRUE;
3721
43.5k
}
3722
3723
BOOL freerdp_settings_set_string_len(rdpSettings* settings, FreeRDP_Settings_Keys_String id,
3724
                                     const char* val, size_t len)
3725
79.4k
{
3726
79.4k
  return freerdp_settings_set_string_copy_(settings, id, val, len, TRUE);
3727
79.4k
}
3728
3729
BOOL freerdp_settings_set_string(rdpSettings* settings, FreeRDP_Settings_Keys_String id,
3730
                                 const char* val)
3731
794k
{
3732
794k
  size_t len = 0;
3733
794k
  if (val)
3734
783k
    len = strlen(val);
3735
794k
  return freerdp_settings_set_string_copy_(settings, id, val, len, TRUE);
3736
794k
}
3737
3738
BOOL freerdp_settings_set_string_copy_(WINPR_ATTR_UNUSED rdpSettings* settings,
3739
                                       WINPR_ATTR_UNUSED FreeRDP_Settings_Keys_String id,
3740
                                       const char* val, size_t len, BOOL cleanup)
3741
11.5M
{
3742
11.5M
  union
3743
11.5M
  {
3744
11.5M
    void* v;
3745
11.5M
    const void* cv;
3746
11.5M
    char* c;
3747
11.5M
    const char* cc;
3748
11.5M
  } cnv;
3749
11.5M
  WINPR_ASSERT(settings);
3750
3751
11.5M
  cnv.cc = val;
3752
3753
11.5M
  switch (id)
3754
11.5M
  {
3755
101k
    case FreeRDP_AadServerHostname:
3756
101k
      return update_string_copy_(&settings->AadServerHostname, cnv.cc, len, cleanup);
3757
3758
101k
    case FreeRDP_AcceptedCert:
3759
101k
      return update_string_copy_(&settings->AcceptedCert, cnv.cc, len, cleanup);
3760
3761
158k
    case FreeRDP_ActionScript:
3762
158k
      return update_string_copy_(&settings->ActionScript, cnv.cc, len, cleanup);
3763
3764
101k
    case FreeRDP_AllowedTlsCiphers:
3765
101k
      return update_string_copy_(&settings->AllowedTlsCiphers, cnv.cc, len, cleanup);
3766
3767
101k
    case FreeRDP_AlternateShell:
3768
101k
      return update_string_copy_(&settings->AlternateShell, cnv.cc, len, cleanup);
3769
3770
101k
    case FreeRDP_AssistanceFile:
3771
101k
      return update_string_copy_(&settings->AssistanceFile, cnv.cc, len, cleanup);
3772
3773
101k
    case FreeRDP_AuthenticationPackageList:
3774
101k
      return update_string_copy_(&settings->AuthenticationPackageList, cnv.cc, len, cleanup);
3775
3776
101k
    case FreeRDP_AuthenticationServiceClass:
3777
101k
      return update_string_copy_(&settings->AuthenticationServiceClass, cnv.cc, len, cleanup);
3778
3779
101k
    case FreeRDP_BitmapCachePersistFile:
3780
101k
      return update_string_copy_(&settings->BitmapCachePersistFile, cnv.cc, len, cleanup);
3781
3782
101k
    case FreeRDP_CardName:
3783
101k
      return update_string_copy_(&settings->CardName, cnv.cc, len, cleanup);
3784
3785
101k
    case FreeRDP_CertificateAcceptedFingerprints:
3786
101k
      return update_string_copy_(&settings->CertificateAcceptedFingerprints, cnv.cc, len,
3787
101k
                                 cleanup);
3788
3789
101k
    case FreeRDP_CertificateName:
3790
101k
      return update_string_copy_(&settings->CertificateName, cnv.cc, len, cleanup);
3791
3792
101k
    case FreeRDP_ClientAddress:
3793
101k
      return update_string_copy_(&settings->ClientAddress, cnv.cc, len, cleanup);
3794
3795
159k
    case FreeRDP_ClientDir:
3796
159k
      return update_string_copy_(&settings->ClientDir, cnv.cc, len, cleanup);
3797
3798
159k
    case FreeRDP_ClientHostname:
3799
159k
      return update_string_copy_(&settings->ClientHostname, cnv.cc, len, cleanup);
3800
3801
159k
    case FreeRDP_ClientProductId:
3802
159k
      return update_string_copy_(&settings->ClientProductId, cnv.cc, len, cleanup);
3803
3804
101k
    case FreeRDP_ClipboardUseSelection:
3805
101k
      return update_string_copy_(&settings->ClipboardUseSelection, cnv.cc, len, cleanup);
3806
3807
158k
    case FreeRDP_ComputerName:
3808
158k
      return update_string_copy_(&settings->ComputerName, cnv.cc, len, cleanup);
3809
3810
144k
    case FreeRDP_ConfigPath:
3811
144k
      return update_string_copy_(&settings->ConfigPath, cnv.cc, len, cleanup);
3812
3813
101k
    case FreeRDP_ConnectionFile:
3814
101k
      return update_string_copy_(&settings->ConnectionFile, cnv.cc, len, cleanup);
3815
3816
101k
    case FreeRDP_ContainerName:
3817
101k
      return update_string_copy_(&settings->ContainerName, cnv.cc, len, cleanup);
3818
3819
101k
    case FreeRDP_CspName:
3820
101k
      return update_string_copy_(&settings->CspName, cnv.cc, len, cleanup);
3821
3822
101k
    case FreeRDP_CurrentPath:
3823
101k
      return update_string_copy_(&settings->CurrentPath, cnv.cc, len, cleanup);
3824
3825
101k
    case FreeRDP_Domain:
3826
101k
      return update_string_copy_(&settings->Domain, cnv.cc, len, cleanup);
3827
3828
101k
    case FreeRDP_DrivesToRedirect:
3829
101k
      return update_string_copy_(&settings->DrivesToRedirect, cnv.cc, len, cleanup);
3830
3831
101k
    case FreeRDP_DumpRemoteFxFile:
3832
101k
      return update_string_copy_(&settings->DumpRemoteFxFile, cnv.cc, len, cleanup);
3833
3834
101k
    case FreeRDP_DynamicDSTTimeZoneKeyName:
3835
101k
      return update_string_copy_(&settings->DynamicDSTTimeZoneKeyName, cnv.cc, len, cleanup);
3836
3837
101k
    case FreeRDP_GatewayAcceptedCert:
3838
101k
      return update_string_copy_(&settings->GatewayAcceptedCert, cnv.cc, len, cleanup);
3839
3840
101k
    case FreeRDP_GatewayAccessToken:
3841
101k
      return update_string_copy_(&settings->GatewayAccessToken, cnv.cc, len, cleanup);
3842
3843
137k
    case FreeRDP_GatewayAvdAadtenantid:
3844
137k
      return update_string_copy_(&settings->GatewayAvdAadtenantid, cnv.cc, len, cleanup);
3845
3846
137k
    case FreeRDP_GatewayAvdAccessAadFormat:
3847
137k
      return update_string_copy_(&settings->GatewayAvdAccessAadFormat, cnv.cc, len, cleanup);
3848
3849
137k
    case FreeRDP_GatewayAvdAccessTokenFormat:
3850
137k
      return update_string_copy_(&settings->GatewayAvdAccessTokenFormat, cnv.cc, len,
3851
137k
                                 cleanup);
3852
3853
101k
    case FreeRDP_GatewayAvdActivityhint:
3854
101k
      return update_string_copy_(&settings->GatewayAvdActivityhint, cnv.cc, len, cleanup);
3855
3856
101k
    case FreeRDP_GatewayAvdArmpath:
3857
101k
      return update_string_copy_(&settings->GatewayAvdArmpath, cnv.cc, len, cleanup);
3858
3859
137k
    case FreeRDP_GatewayAvdClientID:
3860
137k
      return update_string_copy_(&settings->GatewayAvdClientID, cnv.cc, len, cleanup);
3861
3862
101k
    case FreeRDP_GatewayAvdDiagnosticserviceurl:
3863
101k
      return update_string_copy_(&settings->GatewayAvdDiagnosticserviceurl, cnv.cc, len,
3864
101k
                                 cleanup);
3865
3866
101k
    case FreeRDP_GatewayAvdGeo:
3867
101k
      return update_string_copy_(&settings->GatewayAvdGeo, cnv.cc, len, cleanup);
3868
3869
101k
    case FreeRDP_GatewayAvdHubdiscoverygeourl:
3870
101k
      return update_string_copy_(&settings->GatewayAvdHubdiscoverygeourl, cnv.cc, len,
3871
101k
                                 cleanup);
3872
3873
137k
    case FreeRDP_GatewayAvdScope:
3874
137k
      return update_string_copy_(&settings->GatewayAvdScope, cnv.cc, len, cleanup);
3875
3876
101k
    case FreeRDP_GatewayAvdWvdEndpointPool:
3877
101k
      return update_string_copy_(&settings->GatewayAvdWvdEndpointPool, cnv.cc, len, cleanup);
3878
3879
137k
    case FreeRDP_GatewayAzureActiveDirectory:
3880
137k
      return update_string_copy_(&settings->GatewayAzureActiveDirectory, cnv.cc, len,
3881
137k
                                 cleanup);
3882
3883
101k
    case FreeRDP_GatewayDomain:
3884
101k
      return update_string_copy_(&settings->GatewayDomain, cnv.cc, len, cleanup);
3885
3886
101k
    case FreeRDP_GatewayHostname:
3887
101k
      return update_string_copy_(&settings->GatewayHostname, cnv.cc, len, cleanup);
3888
3889
101k
    case FreeRDP_GatewayHttpExtAuthBearer:
3890
101k
      return update_string_copy_(&settings->GatewayHttpExtAuthBearer, cnv.cc, len, cleanup);
3891
3892
137k
    case FreeRDP_GatewayHttpMsUserAgent:
3893
137k
      return update_string_copy_(&settings->GatewayHttpMsUserAgent, cnv.cc, len, cleanup);
3894
3895
137k
    case FreeRDP_GatewayHttpReferer:
3896
137k
      return update_string_copy_(&settings->GatewayHttpReferer, cnv.cc, len, cleanup);
3897
3898
137k
    case FreeRDP_GatewayHttpUserAgent:
3899
137k
      return update_string_copy_(&settings->GatewayHttpUserAgent, cnv.cc, len, cleanup);
3900
3901
101k
    case FreeRDP_GatewayPassword:
3902
101k
      return update_string_copy_(&settings->GatewayPassword, cnv.cc, len, cleanup);
3903
3904
101k
    case FreeRDP_GatewayUrl:
3905
101k
      return update_string_copy_(&settings->GatewayUrl, cnv.cc, len, cleanup);
3906
3907
101k
    case FreeRDP_GatewayUsername:
3908
101k
      return update_string_copy_(&settings->GatewayUsername, cnv.cc, len, cleanup);
3909
3910
144k
    case FreeRDP_HomePath:
3911
144k
      return update_string_copy_(&settings->HomePath, cnv.cc, len, cleanup);
3912
3913
144k
    case FreeRDP_ImeFileName:
3914
144k
      return update_string_copy_(&settings->ImeFileName, cnv.cc, len, cleanup);
3915
3916
101k
    case FreeRDP_KerberosArmor:
3917
101k
      return update_string_copy_(&settings->KerberosArmor, cnv.cc, len, cleanup);
3918
3919
101k
    case FreeRDP_KerberosCache:
3920
101k
      return update_string_copy_(&settings->KerberosCache, cnv.cc, len, cleanup);
3921
3922
101k
    case FreeRDP_KerberosKdcUrl:
3923
101k
      return update_string_copy_(&settings->KerberosKdcUrl, cnv.cc, len, cleanup);
3924
3925
101k
    case FreeRDP_KerberosKeytab:
3926
101k
      return update_string_copy_(&settings->KerberosKeytab, cnv.cc, len, cleanup);
3927
3928
101k
    case FreeRDP_KerberosLifeTime:
3929
101k
      return update_string_copy_(&settings->KerberosLifeTime, cnv.cc, len, cleanup);
3930
3931
101k
    case FreeRDP_KerberosRealm:
3932
101k
      return update_string_copy_(&settings->KerberosRealm, cnv.cc, len, cleanup);
3933
3934
101k
    case FreeRDP_KerberosRenewableLifeTime:
3935
101k
      return update_string_copy_(&settings->KerberosRenewableLifeTime, cnv.cc, len, cleanup);
3936
3937
101k
    case FreeRDP_KerberosStartTime:
3938
101k
      return update_string_copy_(&settings->KerberosStartTime, cnv.cc, len, cleanup);
3939
3940
101k
    case FreeRDP_KeyboardPipeName:
3941
101k
      return update_string_copy_(&settings->KeyboardPipeName, cnv.cc, len, cleanup);
3942
3943
101k
    case FreeRDP_KeyboardRemappingList:
3944
101k
      return update_string_copy_(&settings->KeyboardRemappingList, cnv.cc, len, cleanup);
3945
3946
101k
    case FreeRDP_NtlmSamFile:
3947
101k
      return update_string_copy_(&settings->NtlmSamFile, cnv.cc, len, cleanup);
3948
3949
101k
    case FreeRDP_Password:
3950
101k
      return update_string_copy_(&settings->Password, cnv.cc, len, cleanup);
3951
3952
101k
    case FreeRDP_PasswordHash:
3953
101k
      return update_string_copy_(&settings->PasswordHash, cnv.cc, len, cleanup);
3954
3955
101k
    case FreeRDP_Pkcs11Module:
3956
101k
      return update_string_copy_(&settings->Pkcs11Module, cnv.cc, len, cleanup);
3957
3958
101k
    case FreeRDP_PkinitAnchors:
3959
101k
      return update_string_copy_(&settings->PkinitAnchors, cnv.cc, len, cleanup);
3960
3961
101k
    case FreeRDP_PlayRemoteFxFile:
3962
101k
      return update_string_copy_(&settings->PlayRemoteFxFile, cnv.cc, len, cleanup);
3963
3964
101k
    case FreeRDP_PreconnectionBlob:
3965
101k
      return update_string_copy_(&settings->PreconnectionBlob, cnv.cc, len, cleanup);
3966
3967
101k
    case FreeRDP_ProxyHostname:
3968
101k
      return update_string_copy_(&settings->ProxyHostname, cnv.cc, len, cleanup);
3969
3970
101k
    case FreeRDP_ProxyPassword:
3971
101k
      return update_string_copy_(&settings->ProxyPassword, cnv.cc, len, cleanup);
3972
3973
101k
    case FreeRDP_ProxyUsername:
3974
101k
      return update_string_copy_(&settings->ProxyUsername, cnv.cc, len, cleanup);
3975
3976
101k
    case FreeRDP_RDP2TCPArgs:
3977
101k
      return update_string_copy_(&settings->RDP2TCPArgs, cnv.cc, len, cleanup);
3978
3979
101k
    case FreeRDP_ReaderName:
3980
101k
      return update_string_copy_(&settings->ReaderName, cnv.cc, len, cleanup);
3981
3982
101k
    case FreeRDP_RedirectionAcceptedCert:
3983
101k
      return update_string_copy_(&settings->RedirectionAcceptedCert, cnv.cc, len, cleanup);
3984
3985
101k
    case FreeRDP_RedirectionDomain:
3986
101k
      return update_string_copy_(&settings->RedirectionDomain, cnv.cc, len, cleanup);
3987
3988
101k
    case FreeRDP_RedirectionTargetFQDN:
3989
101k
      return update_string_copy_(&settings->RedirectionTargetFQDN, cnv.cc, len, cleanup);
3990
3991
101k
    case FreeRDP_RedirectionTargetNetBiosName:
3992
101k
      return update_string_copy_(&settings->RedirectionTargetNetBiosName, cnv.cc, len,
3993
101k
                                 cleanup);
3994
3995
101k
    case FreeRDP_RedirectionUsername:
3996
101k
      return update_string_copy_(&settings->RedirectionUsername, cnv.cc, len, cleanup);
3997
3998
101k
    case FreeRDP_RemoteApplicationCmdLine:
3999
101k
      return update_string_copy_(&settings->RemoteApplicationCmdLine, cnv.cc, len, cleanup);
4000
4001
101k
    case FreeRDP_RemoteApplicationFile:
4002
101k
      return update_string_copy_(&settings->RemoteApplicationFile, cnv.cc, len, cleanup);
4003
4004
101k
    case FreeRDP_RemoteApplicationGuid:
4005
101k
      return update_string_copy_(&settings->RemoteApplicationGuid, cnv.cc, len, cleanup);
4006
4007
101k
    case FreeRDP_RemoteApplicationIcon:
4008
101k
      return update_string_copy_(&settings->RemoteApplicationIcon, cnv.cc, len, cleanup);
4009
4010
101k
    case FreeRDP_RemoteApplicationName:
4011
101k
      return update_string_copy_(&settings->RemoteApplicationName, cnv.cc, len, cleanup);
4012
4013
101k
    case FreeRDP_RemoteApplicationProgram:
4014
101k
      return update_string_copy_(&settings->RemoteApplicationProgram, cnv.cc, len, cleanup);
4015
4016
101k
    case FreeRDP_RemoteApplicationWorkingDir:
4017
101k
      return update_string_copy_(&settings->RemoteApplicationWorkingDir, cnv.cc, len,
4018
101k
                                 cleanup);
4019
4020
101k
    case FreeRDP_RemoteAssistancePassStub:
4021
101k
      return update_string_copy_(&settings->RemoteAssistancePassStub, cnv.cc, len, cleanup);
4022
4023
101k
    case FreeRDP_RemoteAssistancePassword:
4024
101k
      return update_string_copy_(&settings->RemoteAssistancePassword, cnv.cc, len, cleanup);
4025
4026
101k
    case FreeRDP_RemoteAssistanceRCTicket:
4027
101k
      return update_string_copy_(&settings->RemoteAssistanceRCTicket, cnv.cc, len, cleanup);
4028
4029
101k
    case FreeRDP_RemoteAssistanceSessionId:
4030
101k
      return update_string_copy_(&settings->RemoteAssistanceSessionId, cnv.cc, len, cleanup);
4031
4032
101k
    case FreeRDP_ServerHostname:
4033
101k
      return update_string_copy_(&settings->ServerHostname, cnv.cc, len, cleanup);
4034
4035
158k
    case FreeRDP_ServerLicenseCompanyName:
4036
158k
      return update_string_copy_(&settings->ServerLicenseCompanyName, cnv.cc, len, cleanup);
4037
4038
158k
    case FreeRDP_ServerLicenseProductName:
4039
158k
      return update_string_copy_(&settings->ServerLicenseProductName, cnv.cc, len, cleanup);
4040
4041
101k
    case FreeRDP_ShellWorkingDirectory:
4042
101k
      return update_string_copy_(&settings->ShellWorkingDirectory, cnv.cc, len, cleanup);
4043
4044
101k
    case FreeRDP_SmartcardCertificate:
4045
101k
      return update_string_copy_(&settings->SmartcardCertificate, cnv.cc, len, cleanup);
4046
4047
101k
    case FreeRDP_SmartcardPrivateKey:
4048
101k
      return update_string_copy_(&settings->SmartcardPrivateKey, cnv.cc, len, cleanup);
4049
4050
101k
    case FreeRDP_SspiModule:
4051
101k
      return update_string_copy_(&settings->SspiModule, cnv.cc, len, cleanup);
4052
4053
101k
    case FreeRDP_TargetNetAddress:
4054
101k
      return update_string_copy_(&settings->TargetNetAddress, cnv.cc, len, cleanup);
4055
4056
103k
    case FreeRDP_TerminalDescriptor:
4057
103k
      return update_string_copy_(&settings->TerminalDescriptor, cnv.cc, len, cleanup);
4058
4059
101k
    case FreeRDP_TlsSecretsFile:
4060
101k
      return update_string_copy_(&settings->TlsSecretsFile, cnv.cc, len, cleanup);
4061
4062
101k
    case FreeRDP_TransportDumpFile:
4063
101k
      return update_string_copy_(&settings->TransportDumpFile, cnv.cc, len, cleanup);
4064
4065
101k
    case FreeRDP_UserSpecifiedServerName:
4066
101k
      return update_string_copy_(&settings->UserSpecifiedServerName, cnv.cc, len, cleanup);
4067
4068
101k
    case FreeRDP_Username:
4069
101k
      return update_string_copy_(&settings->Username, cnv.cc, len, cleanup);
4070
4071
101k
    case FreeRDP_WinSCardModule:
4072
101k
      return update_string_copy_(&settings->WinSCardModule, cnv.cc, len, cleanup);
4073
4074
101k
    case FreeRDP_WindowTitle:
4075
101k
      return update_string_copy_(&settings->WindowTitle, cnv.cc, len, cleanup);
4076
4077
101k
    case FreeRDP_WmClass:
4078
101k
      return update_string_copy_(&settings->WmClass, cnv.cc, len, cleanup);
4079
4080
0
    default:
4081
0
      WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
4082
0
               freerdp_settings_get_type_name_for_key(id));
4083
0
      return FALSE;
4084
11.5M
  }
4085
0
  return TRUE;
4086
11.5M
}
4087
4088
void* freerdp_settings_get_pointer_writable(rdpSettings* settings, FreeRDP_Settings_Keys_Pointer id)
4089
3.11M
{
4090
3.11M
  WINPR_ASSERT(settings);
4091
4092
3.11M
  switch (id)
4093
3.11M
  {
4094
121k
    case FreeRDP_BitmapCacheV2CellInfo:
4095
121k
      return (void*)settings->BitmapCacheV2CellInfo;
4096
4097
173k
    case FreeRDP_ChannelDefArray:
4098
173k
      return (void*)settings->ChannelDefArray;
4099
4100
173k
    case FreeRDP_ClientAutoReconnectCookie:
4101
173k
      return (void*)settings->ClientAutoReconnectCookie;
4102
4103
115k
    case FreeRDP_ClientRandom:
4104
115k
      return (void*)settings->ClientRandom;
4105
4106
158k
    case FreeRDP_ClientTimeZone:
4107
158k
      return (void*)settings->ClientTimeZone;
4108
4109
101k
    case FreeRDP_DeviceArray:
4110
101k
      return (void*)settings->DeviceArray;
4111
4112
101k
    case FreeRDP_DynamicChannelArray:
4113
101k
      return (void*)settings->DynamicChannelArray;
4114
4115
115k
    case FreeRDP_FragCache:
4116
115k
      return (void*)settings->FragCache;
4117
4118
115k
    case FreeRDP_GlyphCache:
4119
115k
      return (void*)settings->GlyphCache;
4120
4121
115k
    case FreeRDP_LoadBalanceInfo:
4122
115k
      return (void*)settings->LoadBalanceInfo;
4123
4124
173k
    case FreeRDP_MonitorDefArray:
4125
173k
      return (void*)settings->MonitorDefArray;
4126
4127
173k
    case FreeRDP_MonitorIds:
4128
173k
      return (void*)settings->MonitorIds;
4129
4130
144k
    case FreeRDP_OrderSupport:
4131
144k
      return (void*)settings->OrderSupport;
4132
4133
86.5k
    case FreeRDP_Password51:
4134
86.5k
      return (void*)settings->Password51;
4135
4136
0
    case FreeRDP_RdpServerCertificate:
4137
0
      return (void*)settings->RdpServerCertificate;
4138
4139
0
    case FreeRDP_RdpServerRsaKey:
4140
0
      return (void*)settings->RdpServerRsaKey;
4141
4142
74.6k
    case FreeRDP_ReceivedCapabilities:
4143
74.6k
      return (void*)settings->ReceivedCapabilities;
4144
4145
74.6k
    case FreeRDP_ReceivedCapabilityData:
4146
74.6k
      return (void*)settings->ReceivedCapabilityData;
4147
4148
74.6k
    case FreeRDP_ReceivedCapabilityDataSizes:
4149
74.6k
      return (void*)settings->ReceivedCapabilityDataSizes;
4150
4151
115k
    case FreeRDP_RedirectionGuid:
4152
115k
      return (void*)settings->RedirectionGuid;
4153
4154
115k
    case FreeRDP_RedirectionPassword:
4155
115k
      return (void*)settings->RedirectionPassword;
4156
4157
0
    case FreeRDP_RedirectionTargetCertificate:
4158
0
      return (void*)settings->RedirectionTargetCertificate;
4159
4160
115k
    case FreeRDP_RedirectionTsvUrl:
4161
115k
      return (void*)settings->RedirectionTsvUrl;
4162
4163
173k
    case FreeRDP_ServerAutoReconnectCookie:
4164
173k
      return (void*)settings->ServerAutoReconnectCookie;
4165
4166
115k
    case FreeRDP_ServerCertificate:
4167
115k
      return (void*)settings->ServerCertificate;
4168
4169
158k
    case FreeRDP_ServerLicenseProductIssuers:
4170
158k
      return (void*)settings->ServerLicenseProductIssuers;
4171
4172
115k
    case FreeRDP_ServerRandom:
4173
115k
      return (void*)settings->ServerRandom;
4174
4175
101k
    case FreeRDP_StaticChannelArray:
4176
101k
      return (void*)settings->StaticChannelArray;
4177
4178
0
    case FreeRDP_TargetNetAddresses:
4179
0
      return (void*)settings->TargetNetAddresses;
4180
4181
0
    case FreeRDP_TargetNetPorts:
4182
0
      return (void*)settings->TargetNetPorts;
4183
4184
14.4k
    case FreeRDP_instance:
4185
14.4k
      return settings->instance;
4186
4187
0
    default:
4188
0
      WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
4189
0
               freerdp_settings_get_type_name_for_key(id));
4190
0
      WINPR_ASSERT(FALSE);
4191
0
      return NULL;
4192
3.11M
  }
4193
3.11M
}
4194
4195
BOOL freerdp_settings_set_pointer(WINPR_ATTR_UNUSED rdpSettings* settings,
4196
                                  WINPR_ATTR_UNUSED FreeRDP_Settings_Keys_Pointer id,
4197
                                  const void* val)
4198
3.48M
{
4199
3.48M
  union
4200
3.48M
  {
4201
3.48M
    void* v;
4202
3.48M
    const void* cv;
4203
3.48M
  } cnv;
4204
3.48M
  WINPR_ASSERT(settings);
4205
4206
3.48M
  cnv.cv = val;
4207
4208
3.48M
  switch (id)
4209
3.48M
  {
4210
126k
    case FreeRDP_BitmapCacheV2CellInfo:
4211
126k
      settings->BitmapCacheV2CellInfo = (BITMAP_CACHE_V2_CELL_INFO*)cnv.v;
4212
126k
      break;
4213
4214
230k
    case FreeRDP_ChannelDefArray:
4215
230k
      settings->ChannelDefArray = (CHANNEL_DEF*)cnv.v;
4216
230k
      break;
4217
4218
230k
    case FreeRDP_ClientAutoReconnectCookie:
4219
230k
      settings->ClientAutoReconnectCookie = (ARC_CS_PRIVATE_PACKET*)cnv.v;
4220
230k
      break;
4221
4222
101k
    case FreeRDP_ClientRandom:
4223
101k
      settings->ClientRandom = (BYTE*)cnv.v;
4224
101k
      break;
4225
4226
115k
    case FreeRDP_ClientTimeZone:
4227
115k
      settings->ClientTimeZone = (TIME_ZONE_INFORMATION*)cnv.v;
4228
115k
      break;
4229
4230
288k
    case FreeRDP_DeviceArray:
4231
288k
      settings->DeviceArray = (RDPDR_DEVICE**)cnv.v;
4232
288k
      break;
4233
4234
101k
    case FreeRDP_DynamicChannelArray:
4235
101k
      settings->DynamicChannelArray = (ADDIN_ARGV**)cnv.v;
4236
101k
      break;
4237
4238
115k
    case FreeRDP_FragCache:
4239
115k
      settings->FragCache = (GLYPH_CACHE_DEFINITION*)cnv.v;
4240
115k
      break;
4241
4242
115k
    case FreeRDP_GlyphCache:
4243
115k
      settings->GlyphCache = (GLYPH_CACHE_DEFINITION*)cnv.v;
4244
115k
      break;
4245
4246
101k
    case FreeRDP_LoadBalanceInfo:
4247
101k
      settings->LoadBalanceInfo = (BYTE*)cnv.v;
4248
101k
      break;
4249
4250
230k
    case FreeRDP_MonitorDefArray:
4251
230k
      settings->MonitorDefArray = (rdpMonitor*)cnv.v;
4252
230k
      break;
4253
4254
158k
    case FreeRDP_MonitorIds:
4255
158k
      settings->MonitorIds = (UINT32*)cnv.v;
4256
158k
      break;
4257
4258
86.5k
    case FreeRDP_OrderSupport:
4259
86.5k
      settings->OrderSupport = (BYTE*)cnv.v;
4260
86.5k
      break;
4261
4262
86.5k
    case FreeRDP_Password51:
4263
86.5k
      settings->Password51 = (BYTE*)cnv.v;
4264
86.5k
      break;
4265
4266
0
    case FreeRDP_RdpServerCertificate:
4267
0
      settings->RdpServerCertificate = (rdpCertificate*)cnv.v;
4268
0
      break;
4269
4270
0
    case FreeRDP_RdpServerRsaKey:
4271
0
      settings->RdpServerRsaKey = (rdpPrivateKey*)cnv.v;
4272
0
      break;
4273
4274
74.6k
    case FreeRDP_ReceivedCapabilities:
4275
74.6k
      settings->ReceivedCapabilities = (BYTE*)cnv.v;
4276
74.6k
      break;
4277
4278
74.6k
    case FreeRDP_ReceivedCapabilityData:
4279
74.6k
      settings->ReceivedCapabilityData = (BYTE**)cnv.v;
4280
74.6k
      break;
4281
4282
74.6k
    case FreeRDP_ReceivedCapabilityDataSizes:
4283
74.6k
      settings->ReceivedCapabilityDataSizes = (UINT32*)cnv.v;
4284
74.6k
      break;
4285
4286
101k
    case FreeRDP_RedirectionGuid:
4287
101k
      settings->RedirectionGuid = (BYTE*)cnv.v;
4288
101k
      break;
4289
4290
101k
    case FreeRDP_RedirectionPassword:
4291
101k
      settings->RedirectionPassword = (BYTE*)cnv.v;
4292
101k
      break;
4293
4294
0
    case FreeRDP_RedirectionTargetCertificate:
4295
0
      settings->RedirectionTargetCertificate = (rdpCertificate*)cnv.v;
4296
0
      break;
4297
4298
101k
    case FreeRDP_RedirectionTsvUrl:
4299
101k
      settings->RedirectionTsvUrl = (BYTE*)cnv.v;
4300
101k
      break;
4301
4302
230k
    case FreeRDP_ServerAutoReconnectCookie:
4303
230k
      settings->ServerAutoReconnectCookie = (ARC_SC_PRIVATE_PACKET*)cnv.v;
4304
230k
      break;
4305
4306
101k
    case FreeRDP_ServerCertificate:
4307
101k
      settings->ServerCertificate = (BYTE*)cnv.v;
4308
101k
      break;
4309
4310
230k
    case FreeRDP_ServerLicenseProductIssuers:
4311
230k
      settings->ServerLicenseProductIssuers = (char**)cnv.v;
4312
230k
      break;
4313
4314
101k
    case FreeRDP_ServerRandom:
4315
101k
      settings->ServerRandom = (BYTE*)cnv.v;
4316
101k
      break;
4317
4318
101k
    case FreeRDP_StaticChannelArray:
4319
101k
      settings->StaticChannelArray = (ADDIN_ARGV**)cnv.v;
4320
101k
      break;
4321
4322
0
    case FreeRDP_TargetNetAddresses:
4323
0
      settings->TargetNetAddresses = (char**)cnv.v;
4324
0
      break;
4325
4326
0
    case FreeRDP_TargetNetPorts:
4327
0
      settings->TargetNetPorts = (UINT32*)cnv.v;
4328
0
      break;
4329
4330
101k
    case FreeRDP_instance:
4331
101k
      settings->instance = cnv.v;
4332
101k
      break;
4333
4334
0
    default:
4335
0
      WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
4336
0
               freerdp_settings_get_type_name_for_key(id));
4337
0
      return FALSE;
4338
3.48M
  }
4339
3.48M
  return TRUE;
4340
3.48M
}