Coverage Report

Created: 2025-12-02 06:09

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