FreeRDP
include/freerdp/settings.h File Reference

This is the FreeRDP settings module. More...

#include <winpr/timezone.h>
#include <winpr/wlog.h>
#include <freerdp/api.h>
#include <freerdp/config.h>
#include <freerdp/types.h>
#include <freerdp/redirection.h>
#include <freerdp/settings_types_private.h>
#include <freerdp/settings_keys.h>
#include <freerdp/settings_types.h>
#include <freerdp/crypto/certificate.h>
#include <freerdp/crypto/privatekey.h>

Macros

#define FREERDP_SETTINGS_SERVER_MODE   0x00000001
 
#define FREERDP_SETTINGS_REMOTE_MODE   0x00000002
 

Functions

FREERDP_API rdpSettings * freerdp_settings_new (DWORD flags)
 creates a new setting struct More...
 
FREERDP_API rdpSettings * freerdp_settings_clone (const rdpSettings *settings)
 Creates a deep copy of settings. More...
 
FREERDP_API BOOL freerdp_settings_copy (rdpSettings *dst, const rdpSettings *src)
 Deep copies settings from src to dst. More...
 
FREERDP_API BOOL freerdp_settings_copy_item (rdpSettings *dst, const rdpSettings *src, SSIZE_T id)
 copies one setting identified by id from src to dst More...
 
FREERDP_API void freerdp_settings_free (rdpSettings *settings)
 Free a settings struct with all data in it. More...
 
FREERDP_API void freerdp_settings_dump (wLog *log, DWORD level, const rdpSettings *settings)
 Dumps the contents of a settings struct to a WLog logger. More...
 
FREERDP_API BOOL freerdp_settings_print_diff (wLog *log, DWORD level, const rdpSettings *src, const rdpSettings *other)
 Dumps the difference between two settings structs to a WLog. More...
 
FREERDP_API ADDIN_ARGVfreerdp_addin_argv_new (size_t argc, const char *argv[])
 
FREERDP_API ADDIN_ARGVfreerdp_addin_argv_clone (const ADDIN_ARGV *args)
 
FREERDP_API void freerdp_addin_argv_free (ADDIN_ARGV *args)
 
FREERDP_API BOOL freerdp_addin_argv_add_argument (ADDIN_ARGV *args, const char *argument)
 
FREERDP_API BOOL freerdp_addin_argv_add_argument_ex (ADDIN_ARGV *args, const char *argument, size_t len)
 
FREERDP_API BOOL freerdp_addin_argv_del_argument (ADDIN_ARGV *args, const char *argument)
 
FREERDP_API int freerdp_addin_set_argument (ADDIN_ARGV *args, const char *argument)
 
FREERDP_API int freerdp_addin_replace_argument (ADDIN_ARGV *args, const char *previous, const char *argument)
 
FREERDP_API int freerdp_addin_set_argument_value (ADDIN_ARGV *args, const char *option, const char *value)
 
FREERDP_API int freerdp_addin_replace_argument_value (ADDIN_ARGV *args, const char *previous, const char *option, const char *value)
 
FREERDP_API BOOL freerdp_device_collection_add (rdpSettings *settings, RDPDR_DEVICE *device)
 
FREERDP_API RDPDR_DEVICEfreerdp_device_collection_find (rdpSettings *settings, const char *name)
 
FREERDP_API RDPDR_DEVICEfreerdp_device_collection_find_type (rdpSettings *settings, UINT32 type)
 
FREERDP_API void freerdp_device_free (RDPDR_DEVICE *device)
 
FREERDP_API RDPDR_DEVICEfreerdp_device_new (UINT32 Type, size_t count, const char *args[])
 
FREERDP_API RDPDR_DEVICEfreerdp_device_clone (const RDPDR_DEVICE *device)
 
FREERDP_API BOOL freerdp_device_equal (const RDPDR_DEVICE *one, const RDPDR_DEVICE *other)
 
FREERDP_API void freerdp_device_collection_free (rdpSettings *settings)
 
FREERDP_API BOOL freerdp_static_channel_collection_add (rdpSettings *settings, ADDIN_ARGV *channel)
 
FREERDP_API BOOL freerdp_static_channel_collection_del (rdpSettings *settings, const char *name)
 
FREERDP_API ADDIN_ARGVfreerdp_static_channel_collection_find (rdpSettings *settings, const char *name)
 
FREERDP_API void freerdp_static_channel_collection_free (rdpSettings *settings)
 
FREERDP_API BOOL freerdp_dynamic_channel_collection_add (rdpSettings *settings, ADDIN_ARGV *channel)
 
FREERDP_API BOOL freerdp_dynamic_channel_collection_del (rdpSettings *settings, const char *name)
 
FREERDP_API ADDIN_ARGVfreerdp_dynamic_channel_collection_find (const rdpSettings *settings, const char *name)
 
FREERDP_API void freerdp_dynamic_channel_collection_free (rdpSettings *settings)
 
FREERDP_API void freerdp_capability_buffer_free (rdpSettings *settings)
 
FREERDP_API BOOL freerdp_capability_buffer_copy (rdpSettings *settings, const rdpSettings *src)
 
FREERDP_API void freerdp_server_license_issuers_free (rdpSettings *settings)
 
FREERDP_API BOOL freerdp_server_license_issuers_copy (rdpSettings *settings, char **addresses, UINT32 count)
 
FREERDP_API void freerdp_target_net_addresses_free (rdpSettings *settings)
 
FREERDP_API BOOL freerdp_target_net_addresses_copy (rdpSettings *settings, char **addresses, UINT32 count)
 
FREERDP_API void freerdp_performance_flags_make (rdpSettings *settings)
 
FREERDP_API void freerdp_performance_flags_split (rdpSettings *settings)
 
FREERDP_API BOOL freerdp_set_gateway_usage_method (rdpSettings *settings, UINT32 GatewayUsageMethod)
 
FREERDP_API void freerdp_update_gateway_usage_method (rdpSettings *settings, UINT32 GatewayEnabled, UINT32 GatewayBypassLocal)
 
FREERDP_API BOOL freerdp_settings_are_valid (const rdpSettings *settings)
 Returns TRUE if settings are in a valid state, FALSE otherwise. More...
 
FREERDP_API BOOL freerdp_settings_get_bool (const rdpSettings *settings, FreeRDP_Settings_Keys_Bool id)
 Returns a boolean settings value. More...
 
FREERDP_API BOOL freerdp_settings_set_bool (rdpSettings *settings, FreeRDP_Settings_Keys_Bool id, BOOL param)
 Sets a BOOL settings value. More...
 
FREERDP_API INT16 freerdp_settings_get_int16 (const rdpSettings *settings, FreeRDP_Settings_Keys_Int16 id)
 Returns a INT16 settings value. More...
 
FREERDP_API BOOL freerdp_settings_set_int16 (rdpSettings *settings, FreeRDP_Settings_Keys_Int16 id, INT16 param)
 Sets a INT16 settings value. More...
 
FREERDP_API UINT16 freerdp_settings_get_uint16 (const rdpSettings *settings, FreeRDP_Settings_Keys_UInt16 id)
 Returns a UINT16 settings value. More...
 
FREERDP_API BOOL freerdp_settings_set_uint16 (rdpSettings *settings, FreeRDP_Settings_Keys_UInt16 id, UINT16 param)
 Sets a UINT16 settings value. More...
 
FREERDP_API INT32 freerdp_settings_get_int32 (const rdpSettings *settings, FreeRDP_Settings_Keys_Int32 id)
 Returns a INT32 settings value. More...
 
FREERDP_API BOOL freerdp_settings_set_int32 (rdpSettings *settings, FreeRDP_Settings_Keys_Int32 id, INT32 param)
 Sets a INT32 settings value. More...
 
FREERDP_API UINT32 freerdp_settings_get_uint32 (const rdpSettings *settings, FreeRDP_Settings_Keys_UInt32 id)
 Returns a UINT32 settings value. More...
 
FREERDP_API BOOL freerdp_settings_set_uint32 (rdpSettings *settings, FreeRDP_Settings_Keys_UInt32 id, UINT32 param)
 Sets a UINT32 settings value. More...
 
FREERDP_API INT64 freerdp_settings_get_int64 (const rdpSettings *settings, FreeRDP_Settings_Keys_Int64 id)
 Returns a INT64 settings value. More...
 
FREERDP_API BOOL freerdp_settings_set_int64 (rdpSettings *settings, FreeRDP_Settings_Keys_Int64 id, INT64 param)
 Sets a INT64 settings value. More...
 
FREERDP_API UINT64 freerdp_settings_get_uint64 (const rdpSettings *settings, FreeRDP_Settings_Keys_UInt64 id)
 Returns a UINT64 settings value. More...
 
FREERDP_API BOOL freerdp_settings_set_uint64 (rdpSettings *settings, FreeRDP_Settings_Keys_UInt64 id, UINT64 param)
 Sets a UINT64 settings value. More...
 
FREERDP_API const char * freerdp_settings_get_string (const rdpSettings *settings, FreeRDP_Settings_Keys_String id)
 Returns a immutable string settings value. More...
 
FREERDP_API char * freerdp_settings_get_string_writable (rdpSettings *settings, FreeRDP_Settings_Keys_String id)
 Returns a string settings value. More...
 
FREERDP_API BOOL freerdp_settings_set_string_len (rdpSettings *settings, FreeRDP_Settings_Keys_String id, const char *param, size_t len)
 Sets a string settings value. The param is copied. More...
 
FREERDP_API BOOL freerdp_settings_set_string (rdpSettings *settings, FreeRDP_Settings_Keys_String id, const char *param)
 Sets a string settings value. The param is copied. More...
 
FREERDP_API BOOL freerdp_settings_append_string (rdpSettings *settings, FreeRDP_Settings_Keys_String id, const char *separator, const char *param)
 appends a string to a settings value. The param is copied. If the initial value of the setting was not empty, <old value><separator> is created More...
 
FREERDP_API BOOL freerdp_settings_set_string_from_utf16 (rdpSettings *settings, FreeRDP_Settings_Keys_String id, const WCHAR *param)
 Sets a string settings value. The param is converted to UTF-8 and the copy stored. More...
 
FREERDP_API BOOL freerdp_settings_set_string_from_utf16N (rdpSettings *settings, FreeRDP_Settings_Keys_String id, const WCHAR *param, size_t length)
 Sets a string settings value. The param is converted to UTF-8 and the copy stored. More...
 
FREERDP_API WCHAR * freerdp_settings_get_string_as_utf16 (const rdpSettings *settings, FreeRDP_Settings_Keys_String id, size_t *pCharLen)
 Return an allocated UTF16 string. More...
 
FREERDP_API const void * freerdp_settings_get_pointer (const rdpSettings *settings, FreeRDP_Settings_Keys_Pointer id)
 Returns a immutable pointer settings value. More...
 
FREERDP_API void * freerdp_settings_get_pointer_writable (rdpSettings *settings, FreeRDP_Settings_Keys_Pointer id)
 Returns a mutable pointer settings value. More...
 
FREERDP_API BOOL freerdp_settings_set_pointer (rdpSettings *settings, FreeRDP_Settings_Keys_Pointer id, const void *data)
 Set a pointer to value data. More...
 
FREERDP_API BOOL freerdp_settings_set_pointer_len (rdpSettings *settings, FreeRDP_Settings_Keys_Pointer id, const void *data, size_t len)
 Set a pointer to value data. More...
 
FREERDP_API const void * freerdp_settings_get_pointer_array (const rdpSettings *settings, FreeRDP_Settings_Keys_Pointer id, size_t offset)
 
FREERDP_API void * freerdp_settings_get_pointer_array_writable (const rdpSettings *settings, FreeRDP_Settings_Keys_Pointer id, size_t offset)
 
FREERDP_API BOOL freerdp_settings_set_pointer_array (rdpSettings *settings, FreeRDP_Settings_Keys_Pointer id, size_t offset, const void *data)
 
FREERDP_API BOOL freerdp_settings_set_value_for_name (rdpSettings *settings, const char *name, const char *value)
 
FREERDP_API SSIZE_T freerdp_settings_get_key_for_name (const char *value)
 Get a key index for the name string of that key. More...
 
FREERDP_API SSIZE_T freerdp_settings_get_type_for_name (const char *value)
 Get a key type for the name string of that key. More...
 
FREERDP_API SSIZE_T freerdp_settings_get_type_for_key (SSIZE_T key)
 Get a key type for the key index. More...
 
FREERDP_API const char * freerdp_settings_get_type_name_for_key (SSIZE_T key)
 Returns the type name for a key. More...
 
FREERDP_API const char * freerdp_settings_get_type_name_for_type (SSIZE_T type)
 Returns the type name for a type. More...
 
FREERDP_API const char * freerdp_settings_get_name_for_key (SSIZE_T key)
 Returns the type name for a key. More...
 
FREERDP_API UINT32 freerdp_settings_get_codecs_flags (const rdpSettings *settings)
 helper function to get a mask of supported codec flags. More...
 
FREERDP_API BOOL freerdp_settings_update_from_caps (rdpSettings *settings, const BYTE *capsFlags, const BYTE **capsData, const UINT32 *capsSizes, UINT32 capsCount, BOOL serverReceivedCaps)
 Parse capability data and apply to settings. More...
 
FREERDP_API const char * freerdp_settings_get_server_name (const rdpSettings *settings)
 A helper function to return the correct server name. More...
 
FREERDP_API char * freerdp_rail_support_flags_to_string (UINT32 flags, char *buffer, size_t length)
 Returns a stringified representation of RAIL support flags. More...
 
FREERDP_API const char * freerdp_rdp_version_string (UINT32 version)
 Returns a stringified representation of the RDP protocol version. More...
 
FREERDP_API const char * freerdp_rdpdr_dtyp_string (UINT32 type)
 Returns a string representation of RDPDR_DTYP_*. More...
 
FREERDP_API const char * freerdp_encryption_level_string (UINT32 EncryptionLevel)
 
FREERDP_API const char * freerdp_encryption_methods_string (UINT32 EncryptionLevel, char *buffer, size_t size)
 
FREERDP_API const char * freerdp_supported_color_depths_string (UINT16 mask, char *buffer, size_t size)
 returns a string representation of RNS_UD_XXBPP_SUPPORT values More...
 

Detailed Description

This is the FreeRDP settings module.

FreeRDP: A Remote Desktop Protocol Implementation RDP Settings

Copyright 2009-2011 Jay Sorg Copyright 2010-2012 Marc-Andre Moreau marca.nosp@m.ndre.nosp@m..more.nosp@m.au@g.nosp@m.mail..nosp@m.com Copyright 2016 Armin Novak armin.nosp@m..nov.nosp@m.ak@gm.nosp@m.ail..nosp@m.com Copyright 2023 Armin Novak anova.nosp@m.k@th.nosp@m.incas.nosp@m.t.co.nosp@m.m Copyright 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.

Settings are used to store configuration data for an RDP connection. There are 3 different settings for each client and server:

  1. The initial connection supplied by the user
  2. The settings sent from client or server during capability exchange
  3. The settings merged from the capability exchange and the initial configuration.

The lifetime of the settings is as follows:

  1. Initial configuration is saved and will be valid for the whole application lifecycle
  2. The client or server settings from the other end are valid from capability exchange until the connection is ended (disconnect/redirect/...)
  3. The merged settings are created from the initial configuration and server settings and have the same lifetime, until the connection ends

So, when accessing the settings always ensure to know which one you are operating on! (this is especially important for the proxy where you have a RDP client and RDP server in the same application context)

Macro Definition Documentation

◆ FREERDP_SETTINGS_REMOTE_MODE

#define FREERDP_SETTINGS_REMOTE_MODE   0x00000002

◆ FREERDP_SETTINGS_SERVER_MODE

#define FREERDP_SETTINGS_SERVER_MODE   0x00000001

rdpSettings creation flags

Function Documentation

◆ freerdp_addin_argv_add_argument()

FREERDP_API BOOL freerdp_addin_argv_add_argument ( ADDIN_ARGV args,
const char *  argument 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_addin_argv_add_argument_ex()

FREERDP_API BOOL freerdp_addin_argv_add_argument_ex ( ADDIN_ARGV args,
const char *  argument,
size_t  len 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_addin_argv_clone()

FREERDP_API ADDIN_ARGV* freerdp_addin_argv_clone ( const ADDIN_ARGV args)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_addin_argv_del_argument()

FREERDP_API BOOL freerdp_addin_argv_del_argument ( ADDIN_ARGV args,
const char *  argument 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_addin_argv_free()

FREERDP_API void freerdp_addin_argv_free ( ADDIN_ARGV args)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_addin_argv_new()

FREERDP_API ADDIN_ARGV* freerdp_addin_argv_new ( size_t  argc,
const char *  argv[] 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_addin_replace_argument()

FREERDP_API int freerdp_addin_replace_argument ( ADDIN_ARGV args,
const char *  previous,
const char *  argument 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_addin_replace_argument_value()

FREERDP_API int freerdp_addin_replace_argument_value ( ADDIN_ARGV args,
const char *  previous,
const char *  option,
const char *  value 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_addin_set_argument()

FREERDP_API int freerdp_addin_set_argument ( ADDIN_ARGV args,
const char *  argument 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_addin_set_argument_value()

FREERDP_API int freerdp_addin_set_argument_value ( ADDIN_ARGV args,
const char *  option,
const char *  value 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_capability_buffer_copy()

FREERDP_API BOOL freerdp_capability_buffer_copy ( rdpSettings *  settings,
const rdpSettings *  src 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_capability_buffer_free()

FREERDP_API void freerdp_capability_buffer_free ( rdpSettings *  settings)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_device_clone()

FREERDP_API RDPDR_DEVICE* freerdp_device_clone ( const RDPDR_DEVICE device)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_device_collection_add()

FREERDP_API BOOL freerdp_device_collection_add ( rdpSettings *  settings,
RDPDR_DEVICE device 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_device_collection_find()

FREERDP_API RDPDR_DEVICE* freerdp_device_collection_find ( rdpSettings *  settings,
const char *  name 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_device_collection_find_type()

FREERDP_API RDPDR_DEVICE* freerdp_device_collection_find_type ( rdpSettings *  settings,
UINT32  type 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_device_collection_free()

FREERDP_API void freerdp_device_collection_free ( rdpSettings *  settings)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_device_equal()

FREERDP_API BOOL freerdp_device_equal ( const RDPDR_DEVICE one,
const RDPDR_DEVICE other 
)
Here is the caller graph for this function:

◆ freerdp_device_free()

FREERDP_API void freerdp_device_free ( RDPDR_DEVICE device)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_device_new()

FREERDP_API RDPDR_DEVICE* freerdp_device_new ( UINT32  Type,
size_t  count,
const char *  args[] 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_dynamic_channel_collection_add()

FREERDP_API BOOL freerdp_dynamic_channel_collection_add ( rdpSettings *  settings,
ADDIN_ARGV channel 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_dynamic_channel_collection_del()

FREERDP_API BOOL freerdp_dynamic_channel_collection_del ( rdpSettings *  settings,
const char *  name 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_dynamic_channel_collection_find()

FREERDP_API ADDIN_ARGV* freerdp_dynamic_channel_collection_find ( const rdpSettings *  settings,
const char *  name 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_dynamic_channel_collection_free()

FREERDP_API void freerdp_dynamic_channel_collection_free ( rdpSettings *  settings)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_encryption_level_string()

FREERDP_API const char* freerdp_encryption_level_string ( UINT32  EncryptionLevel)

◆ freerdp_encryption_methods_string()

FREERDP_API const char* freerdp_encryption_methods_string ( UINT32  EncryptionLevel,
char *  buffer,
size_t  size 
)
Here is the call graph for this function:

◆ freerdp_performance_flags_make()

FREERDP_API void freerdp_performance_flags_make ( rdpSettings *  settings)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_performance_flags_split()

FREERDP_API void freerdp_performance_flags_split ( rdpSettings *  settings)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_rail_support_flags_to_string()

FREERDP_API char* freerdp_rail_support_flags_to_string ( UINT32  flags,
char *  buffer,
size_t  length 
)

Returns a stringified representation of RAIL support flags.

Parameters
flagsThe flags to stringify
bufferA pointer to the string buffer to write to
lengthThe size of the string buffer
Returns
A pointer to buffer for success, NULL otherwise
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_rdp_version_string()

FREERDP_API const char* freerdp_rdp_version_string ( UINT32  version)

Returns a stringified representation of the RDP protocol version.

Parameters
versionThe RDP protocol version number.
Returns
A string representation of the protocol version as "RDP_VERSION_10_11" or "RDP_VERSION_UNKNOWN" for invalid/unknown versions
Here is the call graph for this function:

◆ freerdp_rdpdr_dtyp_string()

FREERDP_API const char* freerdp_rdpdr_dtyp_string ( UINT32  type)

Returns a string representation of RDPDR_DTYP_*.

Parameters
typeThe integer of the RDPDR_DTYP_* to stringify
Returns
A string representation of the RDPDR_DTYP_* or "RDPDR_DTYP_UNKNOWN"
Here is the caller graph for this function:

◆ freerdp_server_license_issuers_copy()

FREERDP_API BOOL freerdp_server_license_issuers_copy ( rdpSettings *  settings,
char **  addresses,
UINT32  count 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_server_license_issuers_free()

FREERDP_API void freerdp_server_license_issuers_free ( rdpSettings *  settings)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_set_gateway_usage_method()

FREERDP_API BOOL freerdp_set_gateway_usage_method ( rdpSettings *  settings,
UINT32  GatewayUsageMethod 
)

This corresponds to "Automatically detect RD Gateway server settings", which means the client attempts to use gateway group policy settings http://technet.microsoft.com/en-us/library/cc770601.aspx

Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_settings_append_string()

FREERDP_API BOOL freerdp_settings_append_string ( rdpSettings *  settings,
FreeRDP_Settings_Keys_String  id,
const char *  separator,
const char *  param 
)

appends a string to a settings value. The param is copied. If the initial value of the setting was not empty, <old value><separator> is created

Parameters
settingsA pointer to the settings to query, must not be NULL.
idThe key to query
separatorThe separator string to use. May be NULL (no separator)
paramThe value to append
Returns
TRUE for success, FALSE for failure
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_settings_are_valid()

FREERDP_API BOOL freerdp_settings_are_valid ( const rdpSettings *  settings)

Returns TRUE if settings are in a valid state, FALSE otherwise.

This function is meant to replace tideous return checks for freerdp_settings_set_* with a single check after these calls.

Parameters
settingsthe settings instance to check
Returns
TRUE if valid, FALSE otherwise

◆ freerdp_settings_clone()

FREERDP_API rdpSettings* freerdp_settings_clone ( const rdpSettings *  settings)

Creates a deep copy of settings.

Parameters
settingsA pointer to a settings struct to copy. May be NULL (returns NULL)
Returns
A newly allocated copy of settings or NULL
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_settings_copy()

FREERDP_API BOOL freerdp_settings_copy ( rdpSettings *  dst,
const rdpSettings *  src 
)

Deep copies settings from src to dst.

The function frees up all allocated data in dst before copying the data from src

Parameters
dstA pointer for the settings to copy data to. May be NULL (fails copy)
srcA pointer to the settings to copy. May be NULL (fails copy)
Returns
TRUE for success, FALSE for failure.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_settings_copy_item()

FREERDP_API BOOL freerdp_settings_copy_item ( rdpSettings *  dst,
const rdpSettings *  src,
SSIZE_T  id 
)

copies one setting identified by id from src to dst

The function frees up all allocated data in dst before copying the data from src

Parameters
dstA pointer for the settings to copy data to. May be NULL (fails copy)
srcA pointer to the settings to copy. May be NULL (fails copy)
idThe settings identifier to copy
Returns
TRUE for success, FALSE for failure.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_settings_dump()

FREERDP_API void freerdp_settings_dump ( wLog *  log,
DWORD  level,
const rdpSettings *  settings 
)

Dumps the contents of a settings struct to a WLog logger.

Parameters
logThe logger to write to, must not be NULL
levelThe WLog level to use for the log entries
settingsA pointer to the settings to dump. May be NULL.
Here is the call graph for this function:

◆ freerdp_settings_free()

FREERDP_API void freerdp_settings_free ( rdpSettings *  settings)

Free a settings struct with all data in it.

Parameters
settingsA pointer to the settings to free, May be NULL
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_settings_get_bool()

FREERDP_API BOOL freerdp_settings_get_bool ( const rdpSettings *  settings,
FreeRDP_Settings_Keys_Bool  id 
)

Returns a boolean settings value.

Parameters
settingsA pointer to the settings to query, must not be NULL.
idThe key to query
Returns
the value of the boolean key
Here is the call graph for this function:

◆ freerdp_settings_get_codecs_flags()

FREERDP_API UINT32 freerdp_settings_get_codecs_flags ( const rdpSettings *  settings)

helper function to get a mask of supported codec flags.

This function checks various settings to create a mask of supported codecs FreeRDP_CodecFlags defines the codecs

Parameters
settingsthe settings to check
Returns
a mask of supported codecs
Here is the caller graph for this function:

◆ freerdp_settings_get_int16()

FREERDP_API INT16 freerdp_settings_get_int16 ( const rdpSettings *  settings,
FreeRDP_Settings_Keys_Int16  id 
)

Returns a INT16 settings value.

Parameters
settingsA pointer to the settings to query, must not be NULL.
idThe key to query
Returns
the value of the INT16 key
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_settings_get_int32()

FREERDP_API INT32 freerdp_settings_get_int32 ( const rdpSettings *  settings,
FreeRDP_Settings_Keys_Int32  id 
)

Returns a INT32 settings value.

Parameters
settingsA pointer to the settings to query, must not be NULL.
idThe key to query
Returns
the value of the INT32 key
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_settings_get_int64()

FREERDP_API INT64 freerdp_settings_get_int64 ( const rdpSettings *  settings,
FreeRDP_Settings_Keys_Int64  id 
)

Returns a INT64 settings value.

Parameters
settingsA pointer to the settings to query, must not be NULL.
idThe key to query
Returns
the value of the INT64 key
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_settings_get_key_for_name()

FREERDP_API SSIZE_T freerdp_settings_get_key_for_name ( const char *  value)

Get a key index for the name string of that key.

Parameters
valueA key name string like FreeRDP_ServerMode
Returns
The key index or -1 in case of an error (e.g. name does not exist)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_settings_get_name_for_key()

FREERDP_API const char* freerdp_settings_get_name_for_key ( SSIZE_T  key)

Returns the type name for a key.

Parameters
keythe key number to stringify
Returns
the name of the key or NULL
Here is the caller graph for this function:

◆ freerdp_settings_get_pointer()

FREERDP_API const void* freerdp_settings_get_pointer ( const rdpSettings *  settings,
FreeRDP_Settings_Keys_Pointer  id 
)

Returns a immutable pointer settings value.

Parameters
settingsA pointer to the settings to query, must not be NULL.
idThe key to query
Returns
the immutable pointer value
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_settings_get_pointer_array()

FREERDP_API const void* freerdp_settings_get_pointer_array ( const rdpSettings *  settings,
FreeRDP_Settings_Keys_Pointer  id,
size_t  offset 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_settings_get_pointer_array_writable()

FREERDP_API void* freerdp_settings_get_pointer_array_writable ( const rdpSettings *  settings,
FreeRDP_Settings_Keys_Pointer  id,
size_t  offset 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_settings_get_pointer_writable()

FREERDP_API void* freerdp_settings_get_pointer_writable ( rdpSettings *  settings,
FreeRDP_Settings_Keys_Pointer  id 
)

Returns a mutable pointer settings value.

Parameters
settingsA pointer to the settings to query, must not be NULL.
idThe key to query
Returns
the mutable pointer value
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_settings_get_server_name()

FREERDP_API const char* freerdp_settings_get_server_name ( const rdpSettings *  settings)

A helper function to return the correct server name.

The server name might be in key FreeRDP_ServerHostname or if used in FreeRDP_UserSpecifiedServerName. This function returns the correct name to use.

Parameters
settingsThe settings to query, must not be NULL.
Returns
A string pointer or NULL in case of failure.
Here is the caller graph for this function:

◆ freerdp_settings_get_string()

FREERDP_API const char* freerdp_settings_get_string ( const rdpSettings *  settings,
FreeRDP_Settings_Keys_String  id 
)

Returns a immutable string settings value.

Parameters
settingsA pointer to the settings to query, must not be NULL.
idThe key to query
Returns
the immutable string pointer
Here is the call graph for this function:

◆ freerdp_settings_get_string_as_utf16()

FREERDP_API WCHAR* freerdp_settings_get_string_as_utf16 ( const rdpSettings *  settings,
FreeRDP_Settings_Keys_String  id,
size_t *  pCharLen 
)

Return an allocated UTF16 string.

Parameters
settingsA pointer to the settings struct to use
idThe settings identifier
Returns
An allocated, '\0' terminated WCHAR string or NULL
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_settings_get_string_writable()

FREERDP_API char* freerdp_settings_get_string_writable ( rdpSettings *  settings,
FreeRDP_Settings_Keys_String  id 
)

Returns a string settings value.

Parameters
settingsA pointer to the settings to query, must not be NULL.
idThe key to query
Returns
the string pointer
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_settings_get_type_for_key()

FREERDP_API SSIZE_T freerdp_settings_get_type_for_key ( SSIZE_T  key)

Get a key type for the key index.

Parameters
keyThe key index like FreeRDP_ServerMode
Returns
The key type (e.g. FREERDP_SETTINGS_TYPE_BOOL) or -1 in case of an error (e.g. name does not exist)
Here is the caller graph for this function:

◆ freerdp_settings_get_type_for_name()

FREERDP_API SSIZE_T freerdp_settings_get_type_for_name ( const char *  value)

Get a key type for the name string of that key.

Parameters
valueA key name string like FreeRDP_ServerMode
Returns
The key type (e.g. FREERDP_SETTINGS_TYPE_BOOL) or -1 in case of an error (e.g. name does not exist)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_settings_get_type_name_for_key()

FREERDP_API const char* freerdp_settings_get_type_name_for_key ( SSIZE_T  key)

Returns the type name for a key.

Parameters
keythe key number to stringify
Returns
the type name of the key or FREERDP_SETTINGS_TYPE_UNKNOWN
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_settings_get_type_name_for_type()

FREERDP_API const char* freerdp_settings_get_type_name_for_type ( SSIZE_T  type)

Returns the type name for a type.

Parameters
typethe type to stringify
Returns
the name of the key or FREERDP_SETTINGS_TYPE_UNKNOWN
Here is the caller graph for this function:

◆ freerdp_settings_get_uint16()

FREERDP_API UINT16 freerdp_settings_get_uint16 ( const rdpSettings *  settings,
FreeRDP_Settings_Keys_UInt16  id 
)

Returns a UINT16 settings value.

Parameters
settingsA pointer to the settings to query, must not be NULL.
idThe key to query
Returns
the value of the UINT16 key
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_settings_get_uint32()

FREERDP_API UINT32 freerdp_settings_get_uint32 ( const rdpSettings *  settings,
FreeRDP_Settings_Keys_UInt32  id 
)

Returns a UINT32 settings value.

Parameters
settingsA pointer to the settings to query, must not be NULL.
idThe key to query
Returns
the value of the UINT32 key
Here is the call graph for this function:

◆ freerdp_settings_get_uint64()

FREERDP_API UINT64 freerdp_settings_get_uint64 ( const rdpSettings *  settings,
FreeRDP_Settings_Keys_UInt64  id 
)

Returns a UINT64 settings value.

Parameters
settingsA pointer to the settings to query, must not be NULL.
idThe key to query
Returns
the value of the UINT64 key
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_settings_new()

FREERDP_API rdpSettings* freerdp_settings_new ( DWORD  flags)

creates a new setting struct

Parameters
flagsFlags for creation, use FREERDP_SETTINGS_SERVER_MODE for server settings, 0 for client.
Returns
A newly allocated settings struct or NULL
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_settings_print_diff()

FREERDP_API BOOL freerdp_settings_print_diff ( wLog *  log,
DWORD  level,
const rdpSettings *  src,
const rdpSettings *  other 
)

Dumps the difference between two settings structs to a WLog.

Parameters
logThe logger to write to, must not be NULL.
levelThe WLog level to use for the log entries.
srcA pointer to the settings to dump. May be NULL.
otherA pointer to the settings to dump. May be NULL.
Returns
TRUE if not equal, FALSE otherwise
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_settings_set_bool()

FREERDP_API BOOL freerdp_settings_set_bool ( rdpSettings *  settings,
FreeRDP_Settings_Keys_Bool  id,
BOOL  param 
)

Sets a BOOL settings value.

Parameters
settingsA pointer to the settings to query, must not be NULL.
idThe key to query
paramThe value to set.
Returns
TRUE for success, FALSE for failure
Here is the call graph for this function:

◆ freerdp_settings_set_int16()

FREERDP_API BOOL freerdp_settings_set_int16 ( rdpSettings *  settings,
FreeRDP_Settings_Keys_Int16  id,
INT16  param 
)

Sets a INT16 settings value.

Parameters
settingsA pointer to the settings to query, must not be NULL.
idThe key to query
paramThe value to set.
Returns
TRUE for success, FALSE for failure
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_settings_set_int32()

FREERDP_API BOOL freerdp_settings_set_int32 ( rdpSettings *  settings,
FreeRDP_Settings_Keys_Int32  id,
INT32  param 
)

Sets a INT32 settings value.

Parameters
settingsA pointer to the settings to query, must not be NULL.
idThe key to query
paramThe value to set.
Returns
TRUE for success, FALSE for failure
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_settings_set_int64()

FREERDP_API BOOL freerdp_settings_set_int64 ( rdpSettings *  settings,
FreeRDP_Settings_Keys_Int64  id,
INT64  param 
)

Sets a INT64 settings value.

Parameters
settingsA pointer to the settings to query, must not be NULL.
idThe key to query
paramThe value to set.
Returns
TRUE for success, FALSE for failure
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_settings_set_pointer()

FREERDP_API BOOL freerdp_settings_set_pointer ( rdpSettings *  settings,
FreeRDP_Settings_Keys_Pointer  id,
const void *  data 
)

Set a pointer to value data.

Parameters
settingsA pointer to the settings to query, must not be NULL.
idThe key to update
dataThe data to set (direct update, no copy created, previous value overwritten)
Returns
TRUE for success, FALSE for failure
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_settings_set_pointer_array()

FREERDP_API BOOL freerdp_settings_set_pointer_array ( rdpSettings *  settings,
FreeRDP_Settings_Keys_Pointer  id,
size_t  offset,
const void *  data 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_settings_set_pointer_len()

FREERDP_API BOOL freerdp_settings_set_pointer_len ( rdpSettings *  settings,
FreeRDP_Settings_Keys_Pointer  id,
const void *  data,
size_t  len 
)

Set a pointer to value data.

Parameters
settingsA pointer to the settings to query, must not be NULL.
idThe key to update
dataThe data to set (copy created, previous value freed)
Returns
TRUE for success, FALSE for failure
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_settings_set_string()

FREERDP_API BOOL freerdp_settings_set_string ( rdpSettings *  settings,
FreeRDP_Settings_Keys_String  id,
const char *  param 
)

Sets a string settings value. The param is copied.

Parameters
settingsA pointer to the settings to query, must not be NULL.
idThe key to query
paramThe value to set. If NULL removes the old entry, otherwise a copy is created.
Returns
TRUE for success, FALSE for failure
Here is the call graph for this function:

◆ freerdp_settings_set_string_from_utf16()

FREERDP_API BOOL freerdp_settings_set_string_from_utf16 ( rdpSettings *  settings,
FreeRDP_Settings_Keys_String  id,
const WCHAR *  param 
)

Sets a string settings value. The param is converted to UTF-8 and the copy stored.

Parameters
settingsA pointer to the settings to query, must not be NULL.
idThe key to query
paramThe value to set. If NULL removes the old entry, otherwise a copy is created.
Returns
TRUE for success, FALSE for failure
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_settings_set_string_from_utf16N()

FREERDP_API BOOL freerdp_settings_set_string_from_utf16N ( rdpSettings *  settings,
FreeRDP_Settings_Keys_String  id,
const WCHAR *  param,
size_t  length 
)

Sets a string settings value. The param is converted to UTF-8 and the copy stored.

Parameters
settingsA pointer to the settings to query, must not be NULL.
idThe key to query
paramThe value to set. If NULL removes the old entry, otherwise a copy is created.
lengthThe length of the WCHAR string in number of WCHAR characters
Returns
TRUE for success, FALSE for failure
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_settings_set_string_len()

FREERDP_API BOOL freerdp_settings_set_string_len ( rdpSettings *  settings,
FreeRDP_Settings_Keys_String  id,
const char *  param,
size_t  len 
)

Sets a string settings value. The param is copied.

Parameters
settingsA pointer to the settings to query, must not be NULL.
idThe key to query
paramThe value to set. If NULL allocates an empty string buffer of len size, otherwise a copy is created.
lenThe length of param, 0 to remove the old entry.
Returns
TRUE for success, FALSE for failure
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_settings_set_uint16()

FREERDP_API BOOL freerdp_settings_set_uint16 ( rdpSettings *  settings,
FreeRDP_Settings_Keys_UInt16  id,
UINT16  param 
)

Sets a UINT16 settings value.

Parameters
settingsA pointer to the settings to query, must not be NULL.
idThe key to query
paramThe value to set.
Returns
TRUE for success, FALSE for failure
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_settings_set_uint32()

FREERDP_API BOOL freerdp_settings_set_uint32 ( rdpSettings *  settings,
FreeRDP_Settings_Keys_UInt32  id,
UINT32  param 
)

Sets a UINT32 settings value.

Parameters
settingsA pointer to the settings to query, must not be NULL.
idThe key to query
paramThe value to set.
Returns
TRUE for success, FALSE for failure
Here is the call graph for this function:

◆ freerdp_settings_set_uint64()

FREERDP_API BOOL freerdp_settings_set_uint64 ( rdpSettings *  settings,
FreeRDP_Settings_Keys_UInt64  id,
UINT64  param 
)

Sets a UINT64 settings value.

Parameters
settingsA pointer to the settings to query, must not be NULL.
idThe key to query
paramThe value to set.
Returns
TRUE for success, FALSE for failure
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_settings_set_value_for_name()

FREERDP_API BOOL freerdp_settings_set_value_for_name ( rdpSettings *  settings,
const char *  name,
const char *  value 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_settings_update_from_caps()

FREERDP_API BOOL freerdp_settings_update_from_caps ( rdpSettings *  settings,
const BYTE capsFlags,
const BYTE **  capsData,
const UINT32 *  capsSizes,
UINT32  capsCount,
BOOL  serverReceivedCaps 
)

Parse capability data and apply to settings.

The capability message is stored in raw form in the settings, the data parsed and applied to the settings.

Parameters
settingsA pointer to the settings to use
capsFlagsA pointer to the capablity flags, must have capsCount fields
capsDataA pointer array to the RAW capability data, must have capsCount fields
capsSizesA pointer to an array of RAW capability sizes, must have capsCount fields
capsCountThe number of capabilities contained in the RAW data
serverReceivedCapsIndicates if the parser should assume to be a server or client instance
Returns
TRUE for success, FALSE in case of an error
Here is the call graph for this function:

◆ freerdp_static_channel_collection_add()

FREERDP_API BOOL freerdp_static_channel_collection_add ( rdpSettings *  settings,
ADDIN_ARGV channel 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_static_channel_collection_del()

FREERDP_API BOOL freerdp_static_channel_collection_del ( rdpSettings *  settings,
const char *  name 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_static_channel_collection_find()

FREERDP_API ADDIN_ARGV* freerdp_static_channel_collection_find ( rdpSettings *  settings,
const char *  name 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_static_channel_collection_free()

FREERDP_API void freerdp_static_channel_collection_free ( rdpSettings *  settings)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_supported_color_depths_string()

FREERDP_API const char* freerdp_supported_color_depths_string ( UINT16  mask,
char *  buffer,
size_t  size 
)

returns a string representation of RNS_UD_XXBPP_SUPPORT values

return A string reprenentation of the bitmask.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_target_net_addresses_copy()

FREERDP_API BOOL freerdp_target_net_addresses_copy ( rdpSettings *  settings,
char **  addresses,
UINT32  count 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_target_net_addresses_free()

FREERDP_API void freerdp_target_net_addresses_free ( rdpSettings *  settings)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_update_gateway_usage_method()

FREERDP_API void freerdp_update_gateway_usage_method ( rdpSettings *  settings,
UINT32  GatewayEnabled,
UINT32  GatewayBypassLocal 
)
Here is the call graph for this function: