Coverage Report

Created: 2024-05-20 06:11

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