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