FreeRDP
Loading...
Searching...
No Matches
proxy_config.h
20#ifndef FREERDP_SERVER_PROXY_CONFIG_H
21#define FREERDP_SERVER_PROXY_CONFIG_H
22
23#include <winpr/wtypes.h>
24#include <winpr/ini.h>
25
26#include <freerdp/api.h>
27#include <freerdp/server/proxy/proxy_modules_api.h>
28
34#ifdef __cplusplus
35extern "C"
36{
37#endif
38
43 typedef enum WINPR_C23_ENUM_TYPE(uint32_t)
44 {
45 FREERDP_PROXY_CERT_POLICY_DENY = 0,
46 FREERDP_PROXY_CERT_POLICY_ALLOW,
47 FREERDP_PROXY_CERT_POLICY_PINNED,
48 FREERDP_PROXY_CERT_POLICY_VERIFIED,
49 FREERDP_PROXY_CERT_POLICY_VERIFIED_HOST_MATCH,
50 } FreeRDP_ProxyCertPolicy;
51
52 typedef struct proxy_config proxyConfig;
53
55 {
56 /* server */
57 char* Host;
58 UINT16 Port;
59
60 /* target */
61 BOOL FixedTarget;
62 char* TargetHost;
63 UINT16 TargetPort;
64 char* TargetUser;
65 char* TargetDomain;
66 char* TargetPassword;
67
68 /* input */
69 BOOL Keyboard;
70 BOOL Mouse;
71 BOOL Multitouch;
72
73 /* server security */
74 BOOL ServerTlsSecurity;
75 BOOL ServerRdpSecurity;
76 BOOL ServerNlaSecurity;
77
78 /* client security */
79 BOOL ClientNlaSecurity;
80 BOOL ClientTlsSecurity;
81 BOOL ClientRdpSecurity;
82 BOOL ClientAllowFallbackToTls;
83
84 /* channels */
85 BOOL GFX;
86 BOOL DisplayControl;
87 BOOL Clipboard;
88 BOOL AudioOutput;
89 BOOL AudioInput;
90 BOOL RemoteApp;
91 BOOL DeviceRedirection;
92 BOOL VideoRedirection;
93 BOOL CameraRedirection;
94
95 BOOL PassthroughIsBlacklist;
96 char** Passthrough;
97 size_t PassthroughCount;
98 char** Intercept;
99 size_t InterceptCount;
100
101 /* clipboard specific settings */
102#if !defined(WITHOUT_FREERDP_3x_DEPRECATED)
103 WINPR_DEPRECATED_VAR("[since 3.6.0] Unused, ignore", BOOL TextOnly);
104 WINPR_DEPRECATED_VAR("[since 3.6.0] Unused, ignore", UINT32 MaxTextLength);
105
106 /* gfx settings */
107 WINPR_DEPRECATED_VAR("[since 3.6.0] Unused, ignore", BOOL DecodeGFX);
108#endif
109
110 /* modules */
111 char** Modules; /* module file names to load */
112 size_t ModulesCount;
113
114 char** RequiredPlugins; /* required plugin names */
115 size_t RequiredPluginsCount;
116
117 char* CertificateFile;
118 char* CertificateContent;
119
120 char* PrivateKeyFile;
121 char* PrivateKeyContent;
122
123 /* Data extracted from CertificateContent or CertificateFile (evaluation in this order) */
124 char* CertificatePEM;
125 size_t CertificatePEMLength;
126
127 /* Data extracted from PrivateKeyContent or PrivateKeyFile (evaluation in this order) */
128 char* PrivateKeyPEM;
129 size_t PrivateKeyPEMLength;
130
131 wIniFile* ini;
132
133 /* target continued */
134 UINT32 TargetTlsSecLevel;
136 /* codecs */
137 BOOL RFX;
138 BOOL NSC;
140 /* server SamFile */
141 char* SamFile;
143 /* target smartcard */
153 FreeRDP_ProxyCertPolicy TargetCertPolicy;
158 };
159
165 WINPR_ATTR_NODISCARD
166 FREERDP_API BOOL pf_server_config_dump(const char* file);
167
173 FREERDP_API void pf_server_config_free(proxyConfig* config);
174
183 WINPR_ATTR_MALLOC(pf_server_config_free, 1)
184 FREERDP_API proxyConfig* server_config_load_ini(wIniFile* ini);
192 WINPR_ATTR_MALLOC(pf_server_config_free, 1)
193 FREERDP_API proxyConfig* pf_server_config_load_file(const char* path);
194
203 WINPR_ATTR_MALLOC(pf_server_config_free, 1)
204 FREERDP_API proxyConfig* pf_server_config_load_buffer(const char* buffer);
205
211 FREERDP_API void pf_server_config_print(const proxyConfig* config);
212
220 WINPR_ATTR_NODISCARD
221 FREERDP_API size_t pf_config_required_plugins_count(const proxyConfig* config);
222
230 WINPR_ATTR_NODISCARD
231 FREERDP_API const char* pf_config_required_plugin(const proxyConfig* config, size_t index);
232
240 WINPR_ATTR_NODISCARD
241 FREERDP_API size_t pf_config_modules_count(const proxyConfig* config);
242
249 WINPR_ATTR_NODISCARD
250 FREERDP_API const char** pf_config_modules(const proxyConfig* config);
251
259 WINPR_ATTR_NODISCARD
260 FREERDP_API BOOL pf_config_clone(proxyConfig** dst, const proxyConfig* config);
261
271 WINPR_ATTR_NODISCARD
272 FREERDP_API BOOL pf_config_plugin(proxyPluginsManager* plugins_manager, void* userdata);
273
282 WINPR_ATTR_NODISCARD
283 FREERDP_API const char* pf_config_get(const proxyConfig* config, const char* section,
284 const char* key);
285
292 WINPR_ATTR_NODISCARD
293 FREERDP_API const char* pf_config_policy_to_str(FreeRDP_ProxyCertPolicy policy);
294
302 WINPR_ATTR_NODISCARD
303 FREERDP_API FreeRDP_ProxyCertPolicy pf_config_policy_from_str(const char* val);
304
305#ifdef __cplusplus
306}
307#endif
308
311#endif /* FREERDP_SERVER_PROXY_CONFIG_H */
FREERDP_API proxyConfig * pf_server_config_load_buffer(const char *buffer)
pf_server_config_load_buffer Create a proxyConfig from a memory string buffer in INI file format
Definition pf_config.c:996
FREERDP_API void pf_server_config_free(proxyConfig *config)
pf_server_config_free Releases all resources associated with proxyConfig
Definition pf_config.c:1143
FREERDP_API void pf_server_config_print(const proxyConfig *config)
pf_server_config_print Print the configuration to stdout
Definition pf_config.c:1051
WINPR_ATTR_NODISCARD FREERDP_API const char ** pf_config_modules(const proxyConfig *config)
pf_config_modules
Definition pf_config.c:1195
WINPR_ATTR_NODISCARD FREERDP_API const char * pf_config_required_plugin(const proxyConfig *config, size_t index)
pf_config_required_plugin
Definition pf_config.c:1180
WINPR_ATTR_NODISCARD FREERDP_API FreeRDP_ProxyCertPolicy pf_config_policy_from_str(const char *val)
Convert a string to a FreeRDP_ProxyCertPolicy value.
Definition pf_config.c:1659
WINPR_ATTR_NODISCARD FREERDP_API size_t pf_config_modules_count(const proxyConfig *config)
pf_config_modules_count
Definition pf_config.c:1189
WINPR_ATTR_NODISCARD FREERDP_API const char * pf_config_policy_to_str(FreeRDP_ProxyCertPolicy policy)
Convert a FreeRDP_ProxyCertPolicy value to a string.
Definition pf_config.c:1641
WINPR_ATTR_NODISCARD FREERDP_API BOOL pf_config_clone(proxyConfig **dst, const proxyConfig *config)
pf_config_clone Create a copy of the configuration
Definition pf_config.c:1248
WINPR_ATTR_NODISCARD FREERDP_API size_t pf_config_required_plugins_count(const proxyConfig *config)
pf_config_required_plugins_count
Definition pf_config.c:1174
FREERDP_API proxyConfig * server_config_load_ini(wIniFile *ini)
server_config_load_ini Create a proxyConfig from a already loaded INI file.
Definition pf_config.c:764
FREERDP_API proxyConfig * pf_server_config_load_file(const char *path)
pf_server_config_load_file Create a proxyConfig from a INI file found at path.
Definition pf_config.c:1021
WINPR_ATTR_NODISCARD FREERDP_API BOOL pf_server_config_dump(const char *file)
pf_server_config_dump Dumps a default INI configuration file
Definition pf_config.c:814
WINPR_ATTR_NODISCARD FREERDP_API BOOL pf_config_plugin(proxyPluginsManager *plugins_manager, void *userdata)
pf_config_plugin Register a proxy plugin handling event filtering defined in the configuration.
Definition pf_config.c:1599
WINPR_ATTR_NODISCARD FREERDP_API const char * pf_config_get(const proxyConfig *config, const char *section, const char *key)
pf_config_get get a value for a section/key
Definition pf_config.c:1631
size_t TargetSmartcardKeyLength
size_t TargetSmartcardCertLength
char * CertStorePath
BOOL TargetSmartcardAuth
char * TargetCertPEM
BOOL ServerExtSecurity
BOOL ClientExtSecurity
char * TargetSmartcardCert
char * TargetCertHash
char * TargetSmartcardKey
size_t TargetCertPEMLength
FreeRDP_ProxyCertPolicy TargetCertPolicy