Coverage Report

Created: 2024-09-08 06:20

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