Coverage Report

Created: 2026-10-28 06:54

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