Coverage Report

Created: 2026-10-15 06:27

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