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_ProxyCertPolicy;
49
50 typedef struct proxy_config proxyConfig;
51
53 {
54 /* server */
55 char* Host;
56 UINT16 Port;
57
58 /* target */
59 BOOL FixedTarget;
60 char* TargetHost;
61 UINT16 TargetPort;
62 char* TargetUser;
63 char* TargetDomain;
64 char* TargetPassword;
65
66 /* input */
67 BOOL Keyboard;
68 BOOL Mouse;
69 BOOL Multitouch;
70
71 /* server security */
72 BOOL ServerTlsSecurity;
73 BOOL ServerRdpSecurity;
74 BOOL ServerNlaSecurity;
75
76 /* client security */
77 BOOL ClientNlaSecurity;
78 BOOL ClientTlsSecurity;
79 BOOL ClientRdpSecurity;
80 BOOL ClientAllowFallbackToTls;
81
82 /* channels */
83 BOOL GFX;
84 BOOL DisplayControl;
85 BOOL Clipboard;
86 BOOL AudioOutput;
87 BOOL AudioInput;
88 BOOL RemoteApp;
89 BOOL DeviceRedirection;
90 BOOL VideoRedirection;
91 BOOL CameraRedirection;
92
93 BOOL PassthroughIsBlacklist;
94 char** Passthrough;
95 size_t PassthroughCount;
96 char** Intercept;
97 size_t InterceptCount;
98
99 /* clipboard specific settings */
100#if !defined(WITHOUT_FREERDP_3x_DEPRECATED)
101 WINPR_DEPRECATED_VAR("[since 3.6.0] Unused, ignore", BOOL TextOnly);
102 WINPR_DEPRECATED_VAR("[since 3.6.0] Unused, ignore", UINT32 MaxTextLength);
103
104 /* gfx settings */
105 WINPR_DEPRECATED_VAR("[since 3.6.0] Unused, ignore", BOOL DecodeGFX);
106#endif
107
108 /* modules */
109 char** Modules; /* module file names to load */
110 size_t ModulesCount;
111
112 char** RequiredPlugins; /* required plugin names */
113 size_t RequiredPluginsCount;
114
115 char* CertificateFile;
116 char* CertificateContent;
117
118 char* PrivateKeyFile;
119 char* PrivateKeyContent;
120
121 /* Data extracted from CertificateContent or CertificateFile (evaluation in this order) */
122 char* CertificatePEM;
123 size_t CertificatePEMLength;
124
125 /* Data extracted from PrivateKeyContent or PrivateKeyFile (evaluation in this order) */
126 char* PrivateKeyPEM;
127 size_t PrivateKeyPEMLength;
128
129 wIniFile* ini;
130
131 /* target continued */
132 UINT32 TargetTlsSecLevel;
134 /* codecs */
135 BOOL RFX;
136 BOOL NSC;
138 /* server SamFile */
139 char* SamFile;
141 /* target smartcard */
151 FreeRDP_ProxyCertPolicy TargetCertPolicy;
155 };
156
162 WINPR_ATTR_NODISCARD
163 FREERDP_API BOOL pf_server_config_dump(const char* file);
164
170 FREERDP_API void pf_server_config_free(proxyConfig* config);
171
180 WINPR_ATTR_MALLOC(pf_server_config_free, 1)
181 FREERDP_API proxyConfig* server_config_load_ini(wIniFile* ini);
189 WINPR_ATTR_MALLOC(pf_server_config_free, 1)
190 FREERDP_API proxyConfig* pf_server_config_load_file(const char* path);
191
200 WINPR_ATTR_MALLOC(pf_server_config_free, 1)
201 FREERDP_API proxyConfig* pf_server_config_load_buffer(const char* buffer);
202
208 FREERDP_API void pf_server_config_print(const proxyConfig* config);
209
217 WINPR_ATTR_NODISCARD
218 FREERDP_API size_t pf_config_required_plugins_count(const proxyConfig* config);
219
227 WINPR_ATTR_NODISCARD
228 FREERDP_API const char* pf_config_required_plugin(const proxyConfig* config, size_t index);
229
237 WINPR_ATTR_NODISCARD
238 FREERDP_API size_t pf_config_modules_count(const proxyConfig* config);
239
246 WINPR_ATTR_NODISCARD
247 FREERDP_API const char** pf_config_modules(const proxyConfig* config);
248
256 WINPR_ATTR_NODISCARD
257 FREERDP_API BOOL pf_config_clone(proxyConfig** dst, const proxyConfig* config);
258
268 WINPR_ATTR_NODISCARD
269 FREERDP_API BOOL pf_config_plugin(proxyPluginsManager* plugins_manager, void* userdata);
270
279 WINPR_ATTR_NODISCARD
280 FREERDP_API const char* pf_config_get(const proxyConfig* config, const char* section,
281 const char* key);
282
289 WINPR_ATTR_NODISCARD
290 FREERDP_API const char* pf_config_policy_to_str(FreeRDP_ProxyCertPolicy policy);
291
299 WINPR_ATTR_NODISCARD
300 FREERDP_API FreeRDP_ProxyCertPolicy pf_config_policy_from_str(const char* val);
301
302#ifdef __cplusplus
303}
304#endif
305
308#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:976
FREERDP_API void pf_server_config_free(proxyConfig *config)
pf_server_config_free Releases all resources associated with proxyConfig
Definition pf_config.c:1123
FREERDP_API void pf_server_config_print(const proxyConfig *config)
pf_server_config_print Print the configuration to stdout
Definition pf_config.c:1031
WINPR_ATTR_NODISCARD FREERDP_API const char ** pf_config_modules(const proxyConfig *config)
pf_config_modules
Definition pf_config.c:1175
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:1160
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:1635
WINPR_ATTR_NODISCARD FREERDP_API size_t pf_config_modules_count(const proxyConfig *config)
pf_config_modules_count
Definition pf_config.c:1169
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:1621
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:1228
WINPR_ATTR_NODISCARD FREERDP_API size_t pf_config_required_plugins_count(const proxyConfig *config)
pf_config_required_plugins_count
Definition pf_config.c:1154
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:747
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:1001
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:797
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:1579
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:1611
size_t TargetSmartcardKeyLength
size_t TargetSmartcardCertLength
BOOL TargetSmartcardAuth
char * TargetCertPEM
BOOL ServerExtSecurity
BOOL ClientExtSecurity
char * TargetSmartcardCert
char * TargetCertHash
char * TargetSmartcardKey
size_t TargetCertPEMLength
FreeRDP_ProxyCertPolicy TargetCertPolicy