Coverage Report

Created: 2026-07-30 07:11

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