FreeRDP
pf_config.c File Reference
#include <stdio.h>
#include <string.h>
#include <winpr/crt.h>
#include <winpr/path.h>
#include <winpr/collections.h>
#include <winpr/cmdline.h>
#include "pf_server.h"
#include <freerdp/server/proxy/proxy_config.h>
#include <freerdp/server/proxy/proxy_log.h>
#include <freerdp/crypto/crypto.h>
#include <freerdp/channels/cliprdr.h>
#include <freerdp/channels/rdpsnd.h>
#include <freerdp/channels/audin.h>
#include <freerdp/channels/rdpdr.h>
#include <freerdp/channels/disp.h>
#include <freerdp/channels/rail.h>
#include <freerdp/channels/rdpei.h>
#include <freerdp/channels/tsmf.h>
#include <freerdp/channels/video.h>
#include <freerdp/channels/rdpecam.h>
#include "pf_utils.h"

Macros

#define TAG   PROXY_TAG("config")
 
#define CONFIG_PRINT_SECTION(section)   WLog_INFO(TAG, "\t%s:", section)
 
#define CONFIG_PRINT_SECTION_KEY(section, key)   WLog_INFO(TAG, "\t%s/%s:", section, key)
 
#define CONFIG_PRINT_STR(config, key)   WLog_INFO(TAG, "\t\t%s: %s", #key, config->key)
 
#define CONFIG_PRINT_STR_CONTENT(config, key)    WLog_INFO(TAG, "\t\t%s: %s", #key, config->key ? "set" : NULL)
 
#define CONFIG_PRINT_BOOL(config, key)   WLog_INFO(TAG, "\t\t%s: %s", #key, boolstr(config->key))
 
#define CONFIG_PRINT_UINT16(config, key)   WLog_INFO(TAG, "\t\t%s: %" PRIu16 "", #key, config->key)
 
#define CONFIG_PRINT_UINT32(config, key)   WLog_INFO(TAG, "\t\t%s: %" PRIu32 "", #key, config->key)
 

Functions

static const char * boolstr (BOOL rc)
 
static char ** pf_config_parse_comma_separated_list (const char *list, size_t *count)
 
static BOOL pf_config_get_uint16 (wIniFile *ini, const char *section, const char *key, UINT16 *result, BOOL required)
 
static BOOL pf_config_get_uint32 (wIniFile *ini, const char *section, const char *key, UINT32 *result, BOOL required)
 
static BOOL pf_config_get_bool (wIniFile *ini, const char *section, const char *key, BOOL fallback)
 
static const char * pf_config_get_str (wIniFile *ini, const char *section, const char *key, BOOL required)
 
static BOOL pf_config_load_server (wIniFile *ini, proxyConfig *config)
 
static BOOL pf_config_load_target (wIniFile *ini, proxyConfig *config)
 
static BOOL pf_config_load_channels (wIniFile *ini, proxyConfig *config)
 
static BOOL pf_config_load_input (wIniFile *ini, proxyConfig *config)
 
static BOOL pf_config_load_security (wIniFile *ini, proxyConfig *config)
 
static BOOL pf_config_load_clipboard (wIniFile *ini, proxyConfig *config)
 
static BOOL pf_config_load_modules (wIniFile *ini, proxyConfig *config)
 
static BOOL pf_config_load_gfx_settings (wIniFile *ini, proxyConfig *config)
 
static char * pf_config_decode_base64 (const char *data, const char *name, size_t *pLength)
 
static BOOL pf_config_load_certificates (wIniFile *ini, proxyConfig *config)
 
proxyConfig * server_config_load_ini (wIniFile *ini)
 server_config_load_ini Create a proxyConfig from a already loaded INI file. More...
 
BOOL pf_server_config_dump (const char *file)
 pf_server_config_dump Dumps a default INI configuration file More...
 
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 More...
 
proxyConfig * pf_server_config_load_file (const char *path)
 pf_server_config_load_file Create a proxyConfig from a INI file found at path. More...
 
static void pf_server_config_print_list (char **list, size_t count)
 
void pf_server_config_print (const proxyConfig *config)
 pf_server_config_print Print the configuration to stdout More...
 
void pf_server_config_free (proxyConfig *config)
 pf_server_config_free Releases all resources associated with proxyConfig More...
 
size_t pf_config_required_plugins_count (const proxyConfig *config)
 pf_config_required_plugins_count More...
 
const char * pf_config_required_plugin (const proxyConfig *config, size_t index)
 pf_config_required_plugin More...
 
size_t pf_config_modules_count (const proxyConfig *config)
 pf_config_modules_count More...
 
const char ** pf_config_modules (const proxyConfig *config)
 pf_config_modules More...
 
static BOOL pf_config_copy_string (char **dst, const char *src)
 
static BOOL pf_config_copy_string_n (char **dst, const char *src, size_t size)
 
static BOOL pf_config_copy_string_list (char ***dst, size_t *size, char **src, size_t srcSize)
 
BOOL pf_config_clone (proxyConfig **dst, const proxyConfig *config)
 pf_config_clone Create a copy of the configuration More...
 
static BOOL config_plugin_unload (proxyPlugin *plugin)
 
static BOOL config_plugin_keyboard_event (proxyPlugin *plugin, proxyData *pdata, void *param)
 
static BOOL config_plugin_unicode_event (proxyPlugin *plugin, proxyData *pdata, void *param)
 
static BOOL config_plugin_mouse_event (proxyPlugin *plugin, proxyData *pdata, void *param)
 
static BOOL config_plugin_mouse_ex_event (proxyPlugin *plugin, proxyData *pdata, void *param)
 
static BOOL config_plugin_client_channel_data (proxyPlugin *plugin, proxyData *pdata, void *param)
 
static BOOL config_plugin_server_channel_data (proxyPlugin *plugin, proxyData *pdata, void *param)
 
static BOOL config_plugin_dynamic_channel_create (proxyPlugin *plugin, proxyData *pdata, void *param)
 
static BOOL config_plugin_channel_create (proxyPlugin *plugin, proxyData *pdata, void *param)
 
BOOL pf_config_plugin (proxyPluginsManager *plugins_manager, void *userdata)
 pf_config_plugin Register a proxy plugin handling event filtering defined in the configuration. More...
 
const char * pf_config_get (const proxyConfig *config, const char *section, const char *key)
 pf_config_get get a value for a section/key More...
 

Variables

static const char * bool_str_true = "true"
 
static const char * bool_str_false = "false"
 
static const char * section_server = "Server"
 
static const char * key_host = "Host"
 
static const char * key_port = "Port"
 
static const char * section_target = "Target"
 
static const char * key_target_fixed = "FixedTarget"
 
static const char * key_target_user = "User"
 
static const char * key_target_pwd = "Password"
 
static const char * key_target_domain = "Domain"
 
static const char * key_target_tls_seclevel = "TlsSecLevel"
 
static const char * section_clipboard = "Clipboard"
 
static const char * key_clip_text_only = "TextOnly"
 
static const char * key_clip_text_max_len = "MaxTextLength"
 
static const char * section_gfx_settings = "GFXSettings"
 
static const char * key_gfx_decode = "DecodeGFX"
 
static const char * section_plugins = "Plugins"
 
static const char * key_plugins_modules = "Modules"
 
static const char * key_plugins_required = "Required"
 
static const char * section_channels = "Channels"
 
static const char * key_channels_gfx = "GFX"
 
static const char * key_channels_disp = "DisplayControl"
 
static const char * key_channels_clip = "Clipboard"
 
static const char * key_channels_mic = "AudioInput"
 
static const char * key_channels_sound = "AudioOutput"
 
static const char * key_channels_rdpdr = "DeviceRedirection"
 
static const char * key_channels_video = "VideoRedirection"
 
static const char * key_channels_camera = "CameraRedirection"
 
static const char * key_channels_rails = "RemoteApp"
 
static const char * key_channels_blacklist = "PassthroughIsBlacklist"
 
static const char * key_channels_pass = "Passthrough"
 
static const char * key_channels_intercept = "Intercept"
 
static const char * section_input = "Input"
 
static const char * key_input_kbd = "Keyboard"
 
static const char * key_input_mouse = "Mouse"
 
static const char * key_input_multitouch = "Multitouch"
 
static const char * section_security = "Security"
 
static const char * key_security_server_nla = "ServerNlaSecurity"
 
static const char * key_security_server_tls = "ServerTlsSecurity"
 
static const char * key_security_server_rdp = "ServerRdpSecurity"
 
static const char * key_security_client_nla = "ClientNlaSecurity"
 
static const char * key_security_client_tls = "ClientTlsSecurity"
 
static const char * key_security_client_rdp = "ClientRdpSecurity"
 
static const char * key_security_client_fallback = "ClientAllowFallbackToTls"
 
static const char * section_certificates = "Certificates"
 
static const char * key_private_key_file = "PrivateKeyFile"
 
static const char * key_private_key_content = "PrivateKeyContent"
 
static const char * key_cert_file = "CertificateFile"
 
static const char * key_cert_content = "CertificateContent"
 
static const char config_plugin_name [] = "config"
 
static const char config_plugin_desc []
 

Macro Definition Documentation

◆ CONFIG_PRINT_BOOL

#define CONFIG_PRINT_BOOL (   config,
  key 
)    WLog_INFO(TAG, "\t\t%s: %s", #key, boolstr(config->key))

◆ CONFIG_PRINT_SECTION

#define CONFIG_PRINT_SECTION (   section)    WLog_INFO(TAG, "\t%s:", section)

◆ CONFIG_PRINT_SECTION_KEY

#define CONFIG_PRINT_SECTION_KEY (   section,
  key 
)    WLog_INFO(TAG, "\t%s/%s:", section, key)

◆ CONFIG_PRINT_STR

#define CONFIG_PRINT_STR (   config,
  key 
)    WLog_INFO(TAG, "\t\t%s: %s", #key, config->key)

◆ CONFIG_PRINT_STR_CONTENT

#define CONFIG_PRINT_STR_CONTENT (   config,
  key 
)     WLog_INFO(TAG, "\t\t%s: %s", #key, config->key ? "set" : NULL)

◆ CONFIG_PRINT_UINT16

#define CONFIG_PRINT_UINT16 (   config,
  key 
)    WLog_INFO(TAG, "\t\t%s: %" PRIu16 "", #key, config->key)

◆ CONFIG_PRINT_UINT32

#define CONFIG_PRINT_UINT32 (   config,
  key 
)    WLog_INFO(TAG, "\t\t%s: %" PRIu32 "", #key, config->key)

◆ TAG

#define TAG   PROXY_TAG("config")

FreeRDP: A Remote Desktop Protocol Implementation FreeRDP Proxy Server

Copyright 2019 Kobi Mizrachi kmizr.nosp@m.achi.nosp@m.18@gm.nosp@m.ail..nosp@m.com Copyright 2019 Idan Freiberg speid.nosp@m.y@gm.nosp@m.ail.c.nosp@m.om Copyright 2021,2023 Armin Novak anova.nosp@m.k@th.nosp@m.incas.nosp@m.t.co.nosp@m.m Copyright 2021,2023 Thincast Technologies GmbH

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Function Documentation

◆ boolstr()

static const char* boolstr ( BOOL  rc)
static
Here is the caller graph for this function:

◆ config_plugin_channel_create()

static BOOL config_plugin_channel_create ( proxyPlugin *  plugin,
proxyData *  pdata,
void *  param 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ config_plugin_client_channel_data()

static BOOL config_plugin_client_channel_data ( proxyPlugin *  plugin,
proxyData *  pdata,
void *  param 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ config_plugin_dynamic_channel_create()

static BOOL config_plugin_dynamic_channel_create ( proxyPlugin *  plugin,
proxyData *  pdata,
void *  param 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ config_plugin_keyboard_event()

static BOOL config_plugin_keyboard_event ( proxyPlugin *  plugin,
proxyData *  pdata,
void *  param 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ config_plugin_mouse_event()

static BOOL config_plugin_mouse_event ( proxyPlugin *  plugin,
proxyData *  pdata,
void *  param 
)
static
Here is the caller graph for this function:

◆ config_plugin_mouse_ex_event()

static BOOL config_plugin_mouse_ex_event ( proxyPlugin *  plugin,
proxyData *  pdata,
void *  param 
)
static
Here is the caller graph for this function:

◆ config_plugin_server_channel_data()

static BOOL config_plugin_server_channel_data ( proxyPlugin *  plugin,
proxyData *  pdata,
void *  param 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ config_plugin_unicode_event()

static BOOL config_plugin_unicode_event ( proxyPlugin *  plugin,
proxyData *  pdata,
void *  param 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ config_plugin_unload()

static BOOL config_plugin_unload ( proxyPlugin *  plugin)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ pf_config_clone()

BOOL pf_config_clone ( proxyConfig **  dst,
const proxyConfig *  config 
)

pf_config_clone Create a copy of the configuration

Parameters
dstA pointer that receives the newly allocated copy
configThe source configuration to copy
Returns
TRUE for success, FALSE otherwise
Here is the call graph for this function:
Here is the caller graph for this function:

◆ pf_config_copy_string()

static BOOL pf_config_copy_string ( char **  dst,
const char *  src 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ pf_config_copy_string_list()

static BOOL pf_config_copy_string_list ( char ***  dst,
size_t *  size,
char **  src,
size_t  srcSize 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ pf_config_copy_string_n()

static BOOL pf_config_copy_string_n ( char **  dst,
const char *  src,
size_t  size 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ pf_config_decode_base64()

static char* pf_config_decode_base64 ( const char *  data,
const char *  name,
size_t *  pLength 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ pf_config_get()

const char* pf_config_get ( const proxyConfig *  config,
const char *  section,
const char *  key 
)

pf_config_get get a value for a section/key

Parameters
configA pointer to the proxyConfig. Must NOT be NULL.
sectionThe name of the section the key is in, must not be NULL
keyThe name of the key to look for. Must not be NULL
Returns
A pointer to the value for section/key or NULL if not found
Here is the call graph for this function:
Here is the caller graph for this function:

◆ pf_config_get_bool()

static BOOL pf_config_get_bool ( wIniFile *  ini,
const char *  section,
const char *  key,
BOOL  fallback 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ pf_config_get_str()

static const char* pf_config_get_str ( wIniFile *  ini,
const char *  section,
const char *  key,
BOOL  required 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ pf_config_get_uint16()

static BOOL pf_config_get_uint16 ( wIniFile *  ini,
const char *  section,
const char *  key,
UINT16 result,
BOOL  required 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ pf_config_get_uint32()

static BOOL pf_config_get_uint32 ( wIniFile *  ini,
const char *  section,
const char *  key,
UINT32 *  result,
BOOL  required 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ pf_config_load_certificates()

static BOOL pf_config_load_certificates ( wIniFile *  ini,
proxyConfig *  config 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ pf_config_load_channels()

static BOOL pf_config_load_channels ( wIniFile *  ini,
proxyConfig *  config 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ pf_config_load_clipboard()

static BOOL pf_config_load_clipboard ( wIniFile *  ini,
proxyConfig *  config 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ pf_config_load_gfx_settings()

static BOOL pf_config_load_gfx_settings ( wIniFile *  ini,
proxyConfig *  config 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ pf_config_load_input()

static BOOL pf_config_load_input ( wIniFile *  ini,
proxyConfig *  config 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ pf_config_load_modules()

static BOOL pf_config_load_modules ( wIniFile *  ini,
proxyConfig *  config 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ pf_config_load_security()

static BOOL pf_config_load_security ( wIniFile *  ini,
proxyConfig *  config 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ pf_config_load_server()

static BOOL pf_config_load_server ( wIniFile *  ini,
proxyConfig *  config 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ pf_config_load_target()

static BOOL pf_config_load_target ( wIniFile *  ini,
proxyConfig *  config 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ pf_config_modules()

const char** pf_config_modules ( const proxyConfig *  config)

pf_config_modules

Parameters
configA pointer to the proxyConfig. Must NOT be NULL.
Returns
An array of strings of size pf_config_modules_count with the module names.
Here is the caller graph for this function:

◆ pf_config_modules_count()

size_t pf_config_modules_count ( const proxyConfig *  config)

pf_config_modules_count

Parameters
configA pointer to the proxyConfig. Must NOT be NULL.
Returns
The number of proxy modules configured.
Here is the caller graph for this function:

◆ pf_config_parse_comma_separated_list()

static char** pf_config_parse_comma_separated_list ( const char *  list,
size_t *  count 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ pf_config_plugin()

BOOL pf_config_plugin ( proxyPluginsManager *  plugins_manager,
void *  userdata 
)

pf_config_plugin Register a proxy plugin handling event filtering defined in the configuration.

Parameters
plugins_managerThe plugin manager
userdataA proxyConfig* to use as reference
Returns
TRUE for success, FALSE for failure
Here is the call graph for this function:
Here is the caller graph for this function:

◆ pf_config_required_plugin()

const char* pf_config_required_plugin ( const proxyConfig *  config,
size_t  index 
)

pf_config_required_plugin

Parameters
configA pointer to the proxyConfig. Must NOT be NULL.
indexThe index of the plugin to return
Returns
The name of the plugin or NULL.
Here is the caller graph for this function:

◆ pf_config_required_plugins_count()

size_t pf_config_required_plugins_count ( const proxyConfig *  config)

pf_config_required_plugins_count

Parameters
configA pointer to the proxyConfig. Must NOT be NULL.
Returns
The number of required plugins configured.
Here is the caller graph for this function:

◆ pf_server_config_dump()

BOOL pf_server_config_dump ( const char *  file)

pf_server_config_dump Dumps a default INI configuration file

Parameters
fileThe file to write to. Existing files are truncated.
Returns
TRUE for success, FALSE if the file could not be written.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ pf_server_config_free()

void pf_server_config_free ( proxyConfig *  config)

pf_server_config_free Releases all resources associated with proxyConfig

Parameters
configA pointer to the proxyConfig to clean up. Might be NULL.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ pf_server_config_load_buffer()

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

Parameters
bufferA pointer to the '\0' terminated INI string.
Returns
A proxyConfig or NULL in case of failure.
Here is the call graph for this function:

◆ pf_server_config_load_file()

proxyConfig* pf_server_config_load_file ( const char *  path)

pf_server_config_load_file Create a proxyConfig from a INI file found at path.

Parameters
pathThe path of the INI file
Returns
A proxyConfig or NULL in case of failure.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ pf_server_config_print()

void pf_server_config_print ( const proxyConfig *  config)

pf_server_config_print Print the configuration to stdout

Parameters
configA pointer to the configuration to print. Must NOT be NULL.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ pf_server_config_print_list()

static void pf_server_config_print_list ( char **  list,
size_t  count 
)
static
Here is the caller graph for this function:

◆ server_config_load_ini()

proxyConfig* server_config_load_ini ( wIniFile *  ini)

server_config_load_ini Create a proxyConfig from a already loaded INI file.

Parameters
iniA pointer to the parsed INI file. Must NOT be NULL.
Returns
A proxyConfig or NULL in case of failure.
Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ bool_str_false

const char* bool_str_false = "false"
static

◆ bool_str_true

const char* bool_str_true = "true"
static

◆ config_plugin_desc

const char config_plugin_desc[]
static
Initial value:
=
"A plugin filtering according to proxy configuration file rules"

◆ config_plugin_name

const char config_plugin_name[] = "config"
static

◆ key_cert_content

const char* key_cert_content = "CertificateContent"
static

◆ key_cert_file

const char* key_cert_file = "CertificateFile"
static

◆ key_channels_blacklist

const char* key_channels_blacklist = "PassthroughIsBlacklist"
static

◆ key_channels_camera

const char* key_channels_camera = "CameraRedirection"
static

◆ key_channels_clip

const char* key_channels_clip = "Clipboard"
static

◆ key_channels_disp

const char* key_channels_disp = "DisplayControl"
static

◆ key_channels_gfx

const char* key_channels_gfx = "GFX"
static

◆ key_channels_intercept

const char* key_channels_intercept = "Intercept"
static

◆ key_channels_mic

const char* key_channels_mic = "AudioInput"
static

◆ key_channels_pass

const char* key_channels_pass = "Passthrough"
static

◆ key_channels_rails

const char* key_channels_rails = "RemoteApp"
static

◆ key_channels_rdpdr

const char* key_channels_rdpdr = "DeviceRedirection"
static

◆ key_channels_sound

const char* key_channels_sound = "AudioOutput"
static

◆ key_channels_video

const char* key_channels_video = "VideoRedirection"
static

◆ key_clip_text_max_len

const char* key_clip_text_max_len = "MaxTextLength"
static

◆ key_clip_text_only

const char* key_clip_text_only = "TextOnly"
static

◆ key_gfx_decode

const char* key_gfx_decode = "DecodeGFX"
static

◆ key_host

const char* key_host = "Host"
static

◆ key_input_kbd

const char* key_input_kbd = "Keyboard"
static

◆ key_input_mouse

const char* key_input_mouse = "Mouse"
static

◆ key_input_multitouch

const char* key_input_multitouch = "Multitouch"
static

◆ key_plugins_modules

const char* key_plugins_modules = "Modules"
static

◆ key_plugins_required

const char* key_plugins_required = "Required"
static

◆ key_port

const char* key_port = "Port"
static

◆ key_private_key_content

const char* key_private_key_content = "PrivateKeyContent"
static

◆ key_private_key_file

const char* key_private_key_file = "PrivateKeyFile"
static

◆ key_security_client_fallback

const char* key_security_client_fallback = "ClientAllowFallbackToTls"
static

◆ key_security_client_nla

const char* key_security_client_nla = "ClientNlaSecurity"
static

◆ key_security_client_rdp

const char* key_security_client_rdp = "ClientRdpSecurity"
static

◆ key_security_client_tls

const char* key_security_client_tls = "ClientTlsSecurity"
static

◆ key_security_server_nla

const char* key_security_server_nla = "ServerNlaSecurity"
static

◆ key_security_server_rdp

const char* key_security_server_rdp = "ServerRdpSecurity"
static

◆ key_security_server_tls

const char* key_security_server_tls = "ServerTlsSecurity"
static

◆ key_target_domain

const char* key_target_domain = "Domain"
static

◆ key_target_fixed

const char* key_target_fixed = "FixedTarget"
static

◆ key_target_pwd

const char* key_target_pwd = "Password"
static

◆ key_target_tls_seclevel

const char* key_target_tls_seclevel = "TlsSecLevel"
static

◆ key_target_user

const char* key_target_user = "User"
static

◆ section_certificates

const char* section_certificates = "Certificates"
static

◆ section_channels

const char* section_channels = "Channels"
static

◆ section_clipboard

const char* section_clipboard = "Clipboard"
static

◆ section_gfx_settings

const char* section_gfx_settings = "GFXSettings"
static

◆ section_input

const char* section_input = "Input"
static

◆ section_plugins

const char* section_plugins = "Plugins"
static

◆ section_security

const char* section_security = "Security"
static

◆ section_server

const char* section_server = "Server"
static

◆ section_target

const char* section_target = "Target"
static