Coverage Report

Created: 2025-07-01 06:46

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