FreeRDP
client/common/cmdline.c File Reference
#include <freerdp/config.h>
#include <ctype.h>
#include <errno.h>
#include <winpr/assert.h>
#include <winpr/crt.h>
#include <winpr/wlog.h>
#include <winpr/path.h>
#include <winpr/ncrypt.h>
#include <winpr/environment.h>
#include <freerdp/freerdp.h>
#include <freerdp/addin.h>
#include <freerdp/settings.h>
#include <freerdp/client.h>
#include <freerdp/client/channels.h>
#include <freerdp/channels/drdynvc.h>
#include <freerdp/channels/cliprdr.h>
#include <freerdp/channels/encomsp.h>
#include <freerdp/channels/rdp2tcp.h>
#include <freerdp/channels/remdesk.h>
#include <freerdp/channels/rdpsnd.h>
#include <freerdp/channels/disp.h>
#include <freerdp/crypto/crypto.h>
#include <freerdp/locale/keyboard.h>
#include <freerdp/utils/passphrase.h>
#include <freerdp/utils/proxy_utils.h>
#include <freerdp/channels/urbdrc.h>
#include <freerdp/channels/rdpdr.h>
#include <freerdp/locale/locale.h>
#include <freerdp/channels/audin.h>
#include <freerdp/channels/echo.h>
#include <freerdp/client/cmdline.h>
#include <freerdp/version.h>
#include <freerdp/client/utils/smartcard_cli.h>
#include <openssl/tls1.h>
#include "cmdline.h"
#include <freerdp/log.h>

Macros

#define TAG   CLIENT_TAG("common.cmdline")
 
#define fail_at(arg, rc)   fail_at_((arg), (rc), __FILE__, __func__, __LINE__)
 

Typedefs

typedef BOOL(* CmdLineSubOptionCb) (const char *value, rdpSettings *settings)
 

Enumerations

enum  CmdLineSubOptionType { CMDLINE_SUBOPTION_STRING , CMDLINE_SUBOPTION_FILE }
 suboption type More...
 
enum  PARSE_ON_OFF_RESULT { PARSE_ON , PARSE_OFF , PARSE_NONE , PARSE_FAIL }
 
enum  PARSE_CLIP_DIR_RESULT {
  CLIP_DIR_PARSE_ALL , CLIP_DIR_PARSE_OFF , CLIP_DIR_PARSE_LOCAL , CLIP_DIR_PARSE_REMOTE ,
  CLIP_DIR_PARSE_FAIL
}
 

Functions

static const char * option_starts_with (const char *what, const char *val)
 
static BOOL option_ends_with (const char *str, const char *ext)
 
static BOOL option_equals (const char *what, const char *val)
 
static BOOL freerdp_client_print_codepages (const char *arg)
 
static BOOL freerdp_path_valid (const char *path, BOOL *special)
 
static BOOL freerdp_sanitize_drive_name (char *name, const char *invalid, const char *replacement)
 
static char * name_from_path (const char *path)
 
static BOOL freerdp_client_add_drive (rdpSettings *settings, const char *path, const char *name)
 
static BOOL value_to_int (const char *value, LONGLONG *result, LONGLONG min, LONGLONG max)
 
static BOOL value_to_uint (const char *value, ULONGLONG *result, ULONGLONG min, ULONGLONG max)
 
BOOL freerdp_client_print_version (void)
 
BOOL freerdp_client_print_buildconfig (void)
 
static void freerdp_client_print_scancodes (void)
 
static BOOL is_delimiter (char c, const char *delimiters)
 
static const char * get_last (const char *start, size_t len, const char *delimiters)
 
static SSIZE_T next_delimiter (const char *text, size_t len, size_t max, const char *delimiters)
 
static SSIZE_T forced_newline_at (const char *text, size_t len, size_t limit, const char *force_newline)
 
static BOOL print_align (size_t start_offset, size_t *current)
 
static char * print_token (char *text, size_t start_offset, size_t *current, size_t limit, const char *delimiters, const char *force_newline)
 
static size_t print_optionals (const char *text, size_t start_offset, size_t current)
 
static size_t print_description (const char *text, size_t start_offset, size_t current)
 
static int cmp_cmdline_args (const void *pva, const void *pvb)
 
static void freerdp_client_print_command_line_args (COMMAND_LINE_ARGUMENT_A *parg, size_t count)
 
BOOL freerdp_client_print_command_line_help (int argc, char **argv)
 
static COMMAND_LINE_ARGUMENT_Acreate_merged_args (const COMMAND_LINE_ARGUMENT_A *custom, SSIZE_T count, size_t *pcount)
 
BOOL freerdp_client_print_command_line_help_ex (int argc, char **argv, const COMMAND_LINE_ARGUMENT_A *custom)
 
static BOOL option_is_rdp_file (const char *option)
 
static BOOL option_is_incident_file (const char *option)
 
static int freerdp_client_command_line_pre_filter (void *context, int index, int argc, LPSTR *argv)
 
BOOL freerdp_client_add_device_channel (rdpSettings *settings, size_t count, const char **params)
 
BOOL freerdp_client_del_static_channel (rdpSettings *settings, const char *name)
 
BOOL freerdp_client_add_static_channel (rdpSettings *settings, size_t count, const char **params)
 
BOOL freerdp_client_del_dynamic_channel (rdpSettings *settings, const char *name)
 
BOOL freerdp_client_add_dynamic_channel (rdpSettings *settings, size_t count, const char **params)
 
static BOOL read_pem_file (rdpSettings *settings, FreeRDP_Settings_Keys_String id, const char *file)
 
static BOOL parseSubOptions (rdpSettings *settings, const CmdLineSubOptions *opts, size_t count, const char *arg)
 
static int fail_at_ (const COMMAND_LINE_ARGUMENT_A *arg, int rc, const char *file, const char *fkt, size_t line)
 
static int freerdp_client_command_line_post_filter_int (void *context, COMMAND_LINE_ARGUMENT_A *arg)
 
static int freerdp_client_command_line_post_filter (void *context, COMMAND_LINE_ARGUMENT_A *arg)
 
static BOOL freerdp_parse_username_ptr (const char *username, const char **user, size_t *userlen, const char **domain, size_t *domainlen)
 
static BOOL freerdp_parse_username_settings (const char *username, rdpSettings *settings, FreeRDP_Settings_Keys_String userID, FreeRDP_Settings_Keys_String domainID)
 
BOOL freerdp_parse_username (const char *username, char **puser, char **pdomain)
 
BOOL freerdp_parse_hostname (const char *hostname, char **host, int *port)
 
static BOOL freerdp_apply_connection_type (rdpSettings *settings, UINT32 type)
 
BOOL freerdp_set_connection_type (rdpSettings *settings, UINT32 type)
 
static UINT32 freerdp_get_keyboard_layout_for_type (const char *name, DWORD type)
 
static UINT32 freerdp_map_keyboard_layout_name_to_id (const char *name)
 
static int freerdp_detect_command_line_pre_filter (void *context, int index, int argc, LPSTR *argv)
 
static int freerdp_detect_windows_style_command_line_syntax (int argc, char **argv, size_t *count, BOOL ignoreUnknown)
 
static int freerdp_detect_posix_style_command_line_syntax (int argc, char **argv, size_t *count, BOOL ignoreUnknown)
 
static BOOL freerdp_client_detect_command_line (int argc, char **argv, DWORD *flags)
 
int freerdp_client_settings_command_line_status_print (rdpSettings *settings, int status, int argc, char **argv)
 
static void freerdp_client_print_keyboard_type_list (const char *msg, DWORD type)
 
static void freerdp_client_print_keyboard_list (void)
 
static void freerdp_client_print_tune_list (const rdpSettings *settings)
 
int freerdp_client_settings_command_line_status_print_ex (rdpSettings *settings, int status, int argc, char **argv, const COMMAND_LINE_ARGUMENT_A *custom)
 
static BOOL parseSizeValue (const char *input, unsigned long *v1, unsigned long *v2)
 
static BOOL prepare_default_settings (rdpSettings *settings, COMMAND_LINE_ARGUMENT_A *args, BOOL rdp_file)
 
static BOOL setSmartcardEmulation (const char *value, rdpSettings *settings)
 
static PARSE_ON_OFF_RESULT parse_on_off_option (const char *value)
 
static PARSE_CLIP_DIR_RESULT parse_clip_direciton_to_option (const char *value)
 
static int parse_tls_ciphers (rdpSettings *settings, const char *Value)
 
static int parse_tls_seclevel (rdpSettings *settings, const char *Value)
 
static int parse_tls_secrets_file (rdpSettings *settings, const char *Value)
 
static int parse_tls_enforce (rdpSettings *settings, const char *Value)
 
static int parse_tls_cipher_options (rdpSettings *settings, const COMMAND_LINE_ARGUMENT_A *arg)
 
static int parse_tls_options (rdpSettings *settings, const COMMAND_LINE_ARGUMENT_A *arg)
 
static int parse_gfx_options (rdpSettings *settings, const COMMAND_LINE_ARGUMENT_A *arg)
 
static int parse_kbd_layout (rdpSettings *settings, const char *value)
 
static BOOL check_kbd_remap_valid (const char *token)
 
static int parse_host_options (rdpSettings *settings, const COMMAND_LINE_ARGUMENT_A *arg)
 
static int parse_redirect_prefer_options (rdpSettings *settings, const COMMAND_LINE_ARGUMENT_A *arg)
 
static int parse_prevent_session_lock_options (rdpSettings *settings, const COMMAND_LINE_ARGUMENT_A *arg)
 
static int parse_vmconnect_options (rdpSettings *settings, const COMMAND_LINE_ARGUMENT_A *arg)
 
static int parse_size_options (rdpSettings *settings, const COMMAND_LINE_ARGUMENT_A *arg)
 
static int parse_monitors_options (rdpSettings *settings, const COMMAND_LINE_ARGUMENT_A *arg)
 
static int parse_dynamic_resolution_options (rdpSettings *settings, const COMMAND_LINE_ARGUMENT_A *arg)
 
static int parse_smart_sizing_options (rdpSettings *settings, const COMMAND_LINE_ARGUMENT_A *arg)
 
static int parse_bpp_options (rdpSettings *settings, const COMMAND_LINE_ARGUMENT_A *arg)
 
static int parse_kbd_options (rdpSettings *settings, const COMMAND_LINE_ARGUMENT_A *arg)
 
static int parse_proxy_options (rdpSettings *settings, const COMMAND_LINE_ARGUMENT_A *arg)
 
static int parse_dump_options (rdpSettings *settings, const COMMAND_LINE_ARGUMENT_A *arg)
 
static int parse_clipboard_options (rdpSettings *settings, const COMMAND_LINE_ARGUMENT_A *arg)
 
static int parse_audio_mode_options (rdpSettings *settings, const COMMAND_LINE_ARGUMENT_A *arg)
 
static int parse_network_options (rdpSettings *settings, const COMMAND_LINE_ARGUMENT_A *arg)
 
static int parse_sec_options (rdpSettings *settings, const COMMAND_LINE_ARGUMENT_A *arg)
 
static int parse_encryption_methods_options (rdpSettings *settings, const COMMAND_LINE_ARGUMENT_A *arg)
 
static int parse_cert_options (rdpSettings *settings, const COMMAND_LINE_ARGUMENT_A *arg)
 
static int parse_mouse_options (rdpSettings *settings, const COMMAND_LINE_ARGUMENT_A *arg)
 
static int parse_floatbar_options (rdpSettings *settings, const COMMAND_LINE_ARGUMENT_A *arg)
 
static int parse_reconnect_cookie_options (rdpSettings *settings, const COMMAND_LINE_ARGUMENT_A *arg)
 
static int parse_scale_options (rdpSettings *settings, const COMMAND_LINE_ARGUMENT_A *arg)
 
static int parse_scale_device_options (rdpSettings *settings, const COMMAND_LINE_ARGUMENT_A *arg)
 
static int parse_smartcard_logon_options (rdpSettings *settings, const COMMAND_LINE_ARGUMENT_A *arg)
 
static int parse_tune_options (rdpSettings *settings, const COMMAND_LINE_ARGUMENT_A *arg)
 
static int parse_app_option_program (rdpSettings *settings, const char *cmd)
 
static int parse_app_options (rdpSettings *settings, const COMMAND_LINE_ARGUMENT_A *arg)
 
static int parse_cache_options (rdpSettings *settings, const COMMAND_LINE_ARGUMENT_A *arg)
 
static BOOL parse_gateway_host_option (rdpSettings *settings, const char *host)
 
static BOOL parse_gateway_cred_option (rdpSettings *settings, const char *value, FreeRDP_Settings_Keys_String what)
 
static BOOL parse_gateway_type_option (rdpSettings *settings, const char *value)
 
static BOOL parse_gateway_usage_option (rdpSettings *settings, const char *value)
 
static BOOL parse_gateway_options (rdpSettings *settings, const COMMAND_LINE_ARGUMENT_A *arg)
 
static void fill_credential_string (COMMAND_LINE_ARGUMENT_A *args, const char *value)
 
static void fill_credential_strings (COMMAND_LINE_ARGUMENT_A *args)
 
static int freerdp_client_settings_parse_command_line_arguments_int (rdpSettings *settings, int argc, char *argv[], BOOL allowUnknown, COMMAND_LINE_ARGUMENT_A *largs, size_t count, int(*handle_option)(const COMMAND_LINE_ARGUMENT *arg, void *custom), void *handle_userdata)
 
static void argv_free (int *pargc, char **pargv[])
 
static BOOL argv_append (int *pargc, char **pargv[], char *what)
 
static BOOL argv_append_dup (int *pargc, char **pargv[], const char *what)
 
static BOOL args_from_fp (FILE *fp, int *aargc, char **aargv[], const char *file, const char *cmd)
 
static BOOL args_from_env (const char *name, int *aargc, char **aargv[], const char *arg, const char *cmd)
 
int freerdp_client_settings_parse_command_line_arguments (rdpSettings *settings, int oargc, char *oargv[], BOOL allowUnknown)
 
int freerdp_client_settings_parse_command_line_arguments_ex (rdpSettings *settings, int oargc, char **oargv, BOOL allowUnknown, COMMAND_LINE_ARGUMENT_A *args, size_t count, int(*handle_option)(const COMMAND_LINE_ARGUMENT *arg, void *custom), void *handle_userdata)
 parses command line arguments to appropriate settings values. Additionally allows supplying custom command line arguments and a handler function. More...
 
static BOOL freerdp_client_load_static_channel_addin (rdpChannels *channels, rdpSettings *settings, const char *name, void *data)
 
BOOL freerdp_client_load_addins (rdpChannels *channels, rdpSettings *settings)
 
void freerdp_client_warn_unmaintained (int argc, char *argv[])
 
void freerdp_client_warn_experimental (int argc, char *argv[])
 
void freerdp_client_warn_deprecated (int argc, char *argv[])
 

Macro Definition Documentation

◆ fail_at

#define fail_at (   arg,
  rc 
)    fail_at_((arg), (rc), __FILE__, __func__, __LINE__)

◆ TAG

#define TAG   CLIENT_TAG("common.cmdline")

FreeRDP: A Remote Desktop Protocol Implementation FreeRDP Client Command-Line Interface

Copyright 2012 Marc-Andre Moreau marca.nosp@m.ndre.nosp@m..more.nosp@m.au@g.nosp@m.mail..nosp@m.com Copyright 2014 Norbert Federa norbe.nosp@m.rt.f.nosp@m.edera.nosp@m.@thi.nosp@m.ncast.nosp@m..com Copyright 2016 Armin Novak armin.nosp@m..nov.nosp@m.ak@gm.nosp@m.ail..nosp@m.com

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.

Typedef Documentation

◆ CmdLineSubOptionCb

typedef BOOL(* CmdLineSubOptionCb) (const char *value, rdpSettings *settings)

Enumeration Type Documentation

◆ CmdLineSubOptionType

suboption type

Enumerator
CMDLINE_SUBOPTION_STRING 
CMDLINE_SUBOPTION_FILE 

◆ PARSE_CLIP_DIR_RESULT

Enumerator
CLIP_DIR_PARSE_ALL 
CLIP_DIR_PARSE_OFF 
CLIP_DIR_PARSE_LOCAL 
CLIP_DIR_PARSE_REMOTE 
CLIP_DIR_PARSE_FAIL 

◆ PARSE_ON_OFF_RESULT

Enumerator
PARSE_ON 
PARSE_OFF 
PARSE_NONE 
PARSE_FAIL 

Function Documentation

◆ args_from_env()

static BOOL args_from_env ( const char *  name,
int *  aargc,
char **  aargv[],
const char *  arg,
const char *  cmd 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ args_from_fp()

static BOOL args_from_fp ( FILE *  fp,
int *  aargc,
char **  aargv[],
const char *  file,
const char *  cmd 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ argv_append()

static BOOL argv_append ( int *  pargc,
char **  pargv[],
char *  what 
)
static
Here is the caller graph for this function:

◆ argv_append_dup()

static BOOL argv_append_dup ( int *  pargc,
char **  pargv[],
const char *  what 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ argv_free()

static void argv_free ( int *  pargc,
char **  pargv[] 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ check_kbd_remap_valid()

static BOOL check_kbd_remap_valid ( const char *  token)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ cmp_cmdline_args()

static int cmp_cmdline_args ( const void *  pva,
const void *  pvb 
)
static
Here is the caller graph for this function:

◆ create_merged_args()

static COMMAND_LINE_ARGUMENT_A* create_merged_args ( const COMMAND_LINE_ARGUMENT_A custom,
SSIZE_T  count,
size_t *  pcount 
)
static
Here is the caller graph for this function:

◆ fail_at_()

static int fail_at_ ( const COMMAND_LINE_ARGUMENT_A arg,
int  rc,
const char *  file,
const char *  fkt,
size_t  line 
)
static
Here is the call graph for this function:

◆ fill_credential_string()

static void fill_credential_string ( COMMAND_LINE_ARGUMENT_A args,
const char *  value 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ fill_credential_strings()

static void fill_credential_strings ( COMMAND_LINE_ARGUMENT_A args)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ forced_newline_at()

static SSIZE_T forced_newline_at ( const char *  text,
size_t  len,
size_t  limit,
const char *  force_newline 
)
static
Here is the caller graph for this function:

◆ freerdp_apply_connection_type()

static BOOL freerdp_apply_connection_type ( rdpSettings *  settings,
UINT32  type 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_client_add_device_channel()

BOOL freerdp_client_add_device_channel ( rdpSettings *  settings,
size_t  count,
const char **  params 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_client_add_drive()

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

◆ freerdp_client_add_dynamic_channel()

BOOL freerdp_client_add_dynamic_channel ( rdpSettings *  settings,
size_t  count,
const char **  params 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_client_add_static_channel()

BOOL freerdp_client_add_static_channel ( rdpSettings *  settings,
size_t  count,
const char **  params 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_client_command_line_post_filter()

static int freerdp_client_command_line_post_filter ( void *  context,
COMMAND_LINE_ARGUMENT_A arg 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_client_command_line_post_filter_int()

static int freerdp_client_command_line_post_filter_int ( void *  context,
COMMAND_LINE_ARGUMENT_A arg 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_client_command_line_pre_filter()

static int freerdp_client_command_line_pre_filter ( void *  context,
int  index,
int  argc,
LPSTR *  argv 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_client_del_dynamic_channel()

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

◆ freerdp_client_del_static_channel()

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

◆ freerdp_client_detect_command_line()

static BOOL freerdp_client_detect_command_line ( int  argc,
char **  argv,
DWORD *  flags 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_client_load_addins()

BOOL freerdp_client_load_addins ( rdpChannels *  channels,
rdpSettings *  settings 
)

Step 1: first load dynamic channels according to the settings

step 2: do various adjustements in the settings, to handle channels and settings dependencies

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

◆ freerdp_client_load_static_channel_addin()

static BOOL freerdp_client_load_static_channel_addin ( rdpChannels *  channels,
rdpSettings *  settings,
const char *  name,
void *  data 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_client_print_buildconfig()

BOOL freerdp_client_print_buildconfig ( void  )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_client_print_codepages()

static BOOL freerdp_client_print_codepages ( const char *  arg)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_client_print_command_line_args()

static void freerdp_client_print_command_line_args ( COMMAND_LINE_ARGUMENT_A parg,
size_t  count 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_client_print_command_line_help()

BOOL freerdp_client_print_command_line_help ( int  argc,
char **  argv 
)
Here is the call graph for this function:

◆ freerdp_client_print_command_line_help_ex()

BOOL freerdp_client_print_command_line_help_ex ( int  argc,
char **  argv,
const COMMAND_LINE_ARGUMENT_A custom 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_client_print_keyboard_list()

static void freerdp_client_print_keyboard_list ( void  )
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_client_print_keyboard_type_list()

static void freerdp_client_print_keyboard_type_list ( const char *  msg,
DWORD  type 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_client_print_scancodes()

static void freerdp_client_print_scancodes ( void  )
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_client_print_tune_list()

static void freerdp_client_print_tune_list ( const rdpSettings *  settings)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_client_print_version()

BOOL freerdp_client_print_version ( void  )
Here is the caller graph for this function:

◆ freerdp_client_settings_command_line_status_print()

int freerdp_client_settings_command_line_status_print ( rdpSettings *  settings,
int  status,
int  argc,
char **  argv 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_client_settings_command_line_status_print_ex()

int freerdp_client_settings_command_line_status_print_ex ( rdpSettings *  settings,
int  status,
int  argc,
char **  argv,
const COMMAND_LINE_ARGUMENT_A custom 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_client_settings_parse_command_line_arguments()

int freerdp_client_settings_parse_command_line_arguments ( rdpSettings *  settings,
int  oargc,
char *  oargv[],
BOOL  allowUnknown 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_client_settings_parse_command_line_arguments_ex()

int freerdp_client_settings_parse_command_line_arguments_ex ( rdpSettings *  settings,
int  argc,
char **  argv,
BOOL  allowUnknown,
COMMAND_LINE_ARGUMENT_A args,
size_t  count,
int(*)(const COMMAND_LINE_ARGUMENT *arg, void *custom)  handle_option,
void *  handle_userdata 
)

parses command line arguments to appropriate settings values. Additionally allows supplying custom command line arguments and a handler function.

Parameters
settingsThe settings instance to store the parsed values to
argcthe number of argv values
argvan array of strings (char pointer)
allowUnknownAllow unknown command line arguments or FALSE if not.
argsPointer to the custom arguments
countThe number of custom arguments
handle_optionthe handler function for custom arguments.
handle_userdatacustom data supplied to handle_option as context
Returns
0 in case of success, a negative number in case of failure.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_client_settings_parse_command_line_arguments_int()

static int freerdp_client_settings_parse_command_line_arguments_int ( rdpSettings *  settings,
int  argc,
char *  argv[],
BOOL  allowUnknown,
COMMAND_LINE_ARGUMENT_A largs,
size_t  count,
int(*)(const COMMAND_LINE_ARGUMENT *arg, void *custom)  handle_option,
void *  handle_userdata 
)
static
Here is the caller graph for this function:

◆ freerdp_client_warn_deprecated()

void freerdp_client_warn_deprecated ( int  argc,
char *  argv[] 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_client_warn_experimental()

void freerdp_client_warn_experimental ( int  argc,
char *  argv[] 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_client_warn_unmaintained()

void freerdp_client_warn_unmaintained ( int  argc,
char *  argv[] 
)
Here is the call graph for this function:

◆ freerdp_detect_command_line_pre_filter()

static int freerdp_detect_command_line_pre_filter ( void *  context,
int  index,
int  argc,
LPSTR *  argv 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_detect_posix_style_command_line_syntax()

static int freerdp_detect_posix_style_command_line_syntax ( int  argc,
char **  argv,
size_t *  count,
BOOL  ignoreUnknown 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_detect_windows_style_command_line_syntax()

static int freerdp_detect_windows_style_command_line_syntax ( int  argc,
char **  argv,
size_t *  count,
BOOL  ignoreUnknown 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_get_keyboard_layout_for_type()

static UINT32 freerdp_get_keyboard_layout_for_type ( const char *  name,
DWORD  type 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_map_keyboard_layout_name_to_id()

static UINT32 freerdp_map_keyboard_layout_name_to_id ( const char *  name)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_parse_hostname()

BOOL freerdp_parse_hostname ( const char *  hostname,
char **  host,
int *  port 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_parse_username()

BOOL freerdp_parse_username ( const char *  username,
char **  puser,
char **  pdomain 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_parse_username_ptr()

static BOOL freerdp_parse_username_ptr ( const char *  username,
const char **  user,
size_t *  userlen,
const char **  domain,
size_t *  domainlen 
)
static
Here is the caller graph for this function:

◆ freerdp_parse_username_settings()

static BOOL freerdp_parse_username_settings ( const char *  username,
rdpSettings *  settings,
FreeRDP_Settings_Keys_String  userID,
FreeRDP_Settings_Keys_String  domainID 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_path_valid()

static BOOL freerdp_path_valid ( const char *  path,
BOOL *  special 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_sanitize_drive_name()

static BOOL freerdp_sanitize_drive_name ( char *  name,
const char *  invalid,
const char *  replacement 
)
static
Here is the caller graph for this function:

◆ freerdp_set_connection_type()

BOOL freerdp_set_connection_type ( rdpSettings *  settings,
UINT32  type 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_last()

static const char* get_last ( const char *  start,
size_t  len,
const char *  delimiters 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_delimiter()

static BOOL is_delimiter ( char  c,
const char *  delimiters 
)
static
Here is the caller graph for this function:

◆ name_from_path()

static char* name_from_path ( const char *  path)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ next_delimiter()

static SSIZE_T next_delimiter ( const char *  text,
size_t  len,
size_t  max,
const char *  delimiters 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ option_ends_with()

BOOL option_ends_with ( const char *  str,
const char *  ext 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ option_equals()

BOOL option_equals ( const char *  what,
const char *  val 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ option_is_incident_file()

static BOOL option_is_incident_file ( const char *  option)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ option_is_rdp_file()

static BOOL option_is_rdp_file ( const char *  option)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ option_starts_with()

const char * option_starts_with ( const char *  what,
const char *  val 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_app_option_program()

static int parse_app_option_program ( rdpSettings *  settings,
const char *  cmd 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_app_options()

static int parse_app_options ( rdpSettings *  settings,
const COMMAND_LINE_ARGUMENT_A arg 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_audio_mode_options()

static int parse_audio_mode_options ( rdpSettings *  settings,
const COMMAND_LINE_ARGUMENT_A arg 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_bpp_options()

static int parse_bpp_options ( rdpSettings *  settings,
const COMMAND_LINE_ARGUMENT_A arg 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_cache_options()

static int parse_cache_options ( rdpSettings *  settings,
const COMMAND_LINE_ARGUMENT_A arg 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_cert_options()

static int parse_cert_options ( rdpSettings *  settings,
const COMMAND_LINE_ARGUMENT_A arg 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_clip_direciton_to_option()

static PARSE_CLIP_DIR_RESULT parse_clip_direciton_to_option ( const char *  value)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_clipboard_options()

static int parse_clipboard_options ( rdpSettings *  settings,
const COMMAND_LINE_ARGUMENT_A arg 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_dump_options()

static int parse_dump_options ( rdpSettings *  settings,
const COMMAND_LINE_ARGUMENT_A arg 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_dynamic_resolution_options()

static int parse_dynamic_resolution_options ( rdpSettings *  settings,
const COMMAND_LINE_ARGUMENT_A arg 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_encryption_methods_options()

static int parse_encryption_methods_options ( rdpSettings *  settings,
const COMMAND_LINE_ARGUMENT_A arg 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_floatbar_options()

static int parse_floatbar_options ( rdpSettings *  settings,
const COMMAND_LINE_ARGUMENT_A arg 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_gateway_cred_option()

static BOOL parse_gateway_cred_option ( rdpSettings *  settings,
const char *  value,
FreeRDP_Settings_Keys_String  what 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_gateway_host_option()

static BOOL parse_gateway_host_option ( rdpSettings *  settings,
const char *  host 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_gateway_options()

static BOOL parse_gateway_options ( rdpSettings *  settings,
const COMMAND_LINE_ARGUMENT_A arg 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_gateway_type_option()

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

◆ parse_gateway_usage_option()

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

◆ parse_gfx_options()

static int parse_gfx_options ( rdpSettings *  settings,
const COMMAND_LINE_ARGUMENT_A arg 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_host_options()

static int parse_host_options ( rdpSettings *  settings,
const COMMAND_LINE_ARGUMENT_A arg 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_kbd_layout()

static int parse_kbd_layout ( rdpSettings *  settings,
const char *  value 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_kbd_options()

static int parse_kbd_options ( rdpSettings *  settings,
const COMMAND_LINE_ARGUMENT_A arg 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_monitors_options()

static int parse_monitors_options ( rdpSettings *  settings,
const COMMAND_LINE_ARGUMENT_A arg 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_mouse_options()

static int parse_mouse_options ( rdpSettings *  settings,
const COMMAND_LINE_ARGUMENT_A arg 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_network_options()

static int parse_network_options ( rdpSettings *  settings,
const COMMAND_LINE_ARGUMENT_A arg 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_on_off_option()

static PARSE_ON_OFF_RESULT parse_on_off_option ( const char *  value)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_prevent_session_lock_options()

static int parse_prevent_session_lock_options ( rdpSettings *  settings,
const COMMAND_LINE_ARGUMENT_A arg 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_proxy_options()

static int parse_proxy_options ( rdpSettings *  settings,
const COMMAND_LINE_ARGUMENT_A arg 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_reconnect_cookie_options()

static int parse_reconnect_cookie_options ( rdpSettings *  settings,
const COMMAND_LINE_ARGUMENT_A arg 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_redirect_prefer_options()

static int parse_redirect_prefer_options ( rdpSettings *  settings,
const COMMAND_LINE_ARGUMENT_A arg 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_scale_device_options()

static int parse_scale_device_options ( rdpSettings *  settings,
const COMMAND_LINE_ARGUMENT_A arg 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_scale_options()

static int parse_scale_options ( rdpSettings *  settings,
const COMMAND_LINE_ARGUMENT_A arg 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_sec_options()

static int parse_sec_options ( rdpSettings *  settings,
const COMMAND_LINE_ARGUMENT_A arg 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_size_options()

static int parse_size_options ( rdpSettings *  settings,
const COMMAND_LINE_ARGUMENT_A arg 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_smart_sizing_options()

static int parse_smart_sizing_options ( rdpSettings *  settings,
const COMMAND_LINE_ARGUMENT_A arg 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_smartcard_logon_options()

static int parse_smartcard_logon_options ( rdpSettings *  settings,
const COMMAND_LINE_ARGUMENT_A arg 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_tls_cipher_options()

static int parse_tls_cipher_options ( rdpSettings *  settings,
const COMMAND_LINE_ARGUMENT_A arg 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_tls_ciphers()

static int parse_tls_ciphers ( rdpSettings *  settings,
const char *  Value 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_tls_enforce()

static int parse_tls_enforce ( rdpSettings *  settings,
const char *  Value 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_tls_options()

static int parse_tls_options ( rdpSettings *  settings,
const COMMAND_LINE_ARGUMENT_A arg 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_tls_seclevel()

static int parse_tls_seclevel ( rdpSettings *  settings,
const char *  Value 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_tls_secrets_file()

static int parse_tls_secrets_file ( rdpSettings *  settings,
const char *  Value 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_tune_options()

static int parse_tune_options ( rdpSettings *  settings,
const COMMAND_LINE_ARGUMENT_A arg 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_vmconnect_options()

static int parse_vmconnect_options ( rdpSettings *  settings,
const COMMAND_LINE_ARGUMENT_A arg 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parseSizeValue()

static BOOL parseSizeValue ( const char *  input,
unsigned long *  v1,
unsigned long *  v2 
)
static

parses a string value with the format <v1>x<v2>

Parameters
inputinput string
v1pointer to output v1
v2pointer to output v2
Returns
if the parsing was successful
Here is the caller graph for this function:

◆ parseSubOptions()

static BOOL parseSubOptions ( rdpSettings *  settings,
const CmdLineSubOptions *  opts,
size_t  count,
const char *  arg 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ prepare_default_settings()

static BOOL prepare_default_settings ( rdpSettings *  settings,
COMMAND_LINE_ARGUMENT_A args,
BOOL  rdp_file 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ print_align()

static BOOL print_align ( size_t  start_offset,
size_t *  current 
)
static
Here is the caller graph for this function:

◆ print_description()

static size_t print_description ( const char *  text,
size_t  start_offset,
size_t  current 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ print_optionals()

static size_t print_optionals ( const char *  text,
size_t  start_offset,
size_t  current 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ print_token()

static char* print_token ( char *  text,
size_t  start_offset,
size_t *  current,
size_t  limit,
const char *  delimiters,
const char *  force_newline 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ read_pem_file()

static BOOL read_pem_file ( rdpSettings *  settings,
FreeRDP_Settings_Keys_String  id,
const char *  file 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ setSmartcardEmulation()

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

◆ value_to_int()

static BOOL value_to_int ( const char *  value,
LONGLONG *  result,
LONGLONG  min,
LONGLONG  max 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ value_to_uint()

static BOOL value_to_uint ( const char *  value,
ULONGLONG *  result,
ULONGLONG  min,
ULONGLONG  max 
)
static
Here is the call graph for this function:
Here is the caller graph for this function: