FreeRDP
client/common/client.c File Reference
#include <string.h>
#include <errno.h>
#include <freerdp/client.h>
#include <freerdp/addin.h>
#include <freerdp/assistance.h>
#include <freerdp/client/file.h>
#include <freerdp/utils/passphrase.h>
#include <freerdp/client/cmdline.h>
#include <freerdp/client/channels.h>
#include <freerdp/log.h>

Macros

#define TAG   CLIENT_TAG("common")
 

Functions

static BOOL freerdp_client_common_new (freerdp *instance, rdpContext *context)
 
static void freerdp_client_common_free (freerdp *instance, rdpContext *context)
 
rdpContext * freerdp_client_context_new (RDP_CLIENT_ENTRY_POINTS *pEntryPoints)
 
void freerdp_client_context_free (rdpContext *context)
 
int freerdp_client_start (rdpContext *context)
 
int freerdp_client_stop (rdpContext *context)
 
freerdp * freerdp_client_get_instance (rdpContext *context)
 
HANDLE freerdp_client_get_thread (rdpContext *context)
 
static BOOL freerdp_client_settings_post_process (rdpSettings *settings)
 
int freerdp_client_settings_parse_command_line (rdpSettings *settings, int argc, char **argv, BOOL allowUnknown)
 
int freerdp_client_settings_parse_connection_file (rdpSettings *settings, const char *filename)
 
int freerdp_client_settings_parse_connection_file_buffer (rdpSettings *settings, const BYTE *buffer, size_t size)
 
int freerdp_client_settings_write_connection_file (const rdpSettings *settings, const char *filename, BOOL unicode)
 
int freerdp_client_settings_parse_assistance_file (rdpSettings *settings, int argc, char *argv[])
 
static BOOL client_cli_authenticate_raw (freerdp *instance, BOOL gateway, char **username, char **password, char **domain)
 
BOOL client_cli_authenticate (freerdp *instance, char **username, char **password, char **domain)
 
BOOL client_cli_gw_authenticate (freerdp *instance, char **username, char **password, char **domain)
 
static DWORD client_cli_accept_certificate (rdpSettings *settings)
 
DWORD client_cli_verify_certificate (freerdp *instance, const char *common_name, const char *subject, const char *issuer, const char *fingerprint, BOOL host_mismatch)
 
DWORD client_cli_verify_certificate_ex (freerdp *instance, const char *host, UINT16 port, const char *common_name, const char *subject, const char *issuer, const char *fingerprint, DWORD flags)
 
DWORD client_cli_verify_changed_certificate (freerdp *instance, const char *common_name, const char *subject, const char *issuer, const char *fingerprint, const char *old_subject, const char *old_issuer, const char *old_fingerprint)
 
DWORD client_cli_verify_changed_certificate_ex (freerdp *instance, const char *host, UINT16 port, const char *common_name, const char *subject, const char *issuer, const char *fingerprint, const char *old_subject, const char *old_issuer, const char *old_fingerprint, DWORD flags)
 
BOOL client_auto_reconnect (freerdp *instance)
 
BOOL client_auto_reconnect_ex (freerdp *instance, BOOL(*window_events)(freerdp *instance))
 

Macro Definition Documentation

#define TAG   CLIENT_TAG("common")

FreeRDP: A Remote Desktop Protocol Implementation FreeRDP Client Common

Copyright 2012 Marc-Andre Moreau marca.nosp@m.ndre.nosp@m..more.nosp@m.au@g.nosp@m.mail..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.

Function Documentation

BOOL client_auto_reconnect ( freerdp *  instance)

Here is the call graph for this function:

Here is the caller graph for this function:

BOOL client_auto_reconnect_ex ( freerdp *  instance,
BOOL(*)(freerdp *instance window_events 
)

Here is the call graph for this function:

Here is the caller graph for this function:

static DWORD client_cli_accept_certificate ( rdpSettings *  settings)
static

Here is the caller graph for this function:

BOOL client_cli_authenticate ( freerdp *  instance,
char **  username,
char **  password,
char **  domain 
)

Here is the call graph for this function:

Here is the caller graph for this function:

static BOOL client_cli_authenticate_raw ( freerdp *  instance,
BOOL  gateway,
char **  username,
char **  password,
char **  domain 
)
static

Callback set in the rdp_freerdp structure, and used to get the user's password, if required to establish the connection. This function is actually called in credssp_ntlmssp_client_init()

See also
rdp_server_accept_nego() and rdp_check_fds()
Parameters
instance- pointer to the rdp_freerdp structure that contains the connection settings
username- unused
password- on return: pointer to a character string that will be filled by the password entered by the user. Note that this character string will be allocated inside the function, and needs to be deallocated by the caller using free(), even in case this function fails.
domain- unused
Returns
TRUE if a password was successfully entered. See freerdp_passphrase_read() for more details.

Here is the call graph for this function:

Here is the caller graph for this function:

BOOL client_cli_gw_authenticate ( freerdp *  instance,
char **  username,
char **  password,
char **  domain 
)

Here is the call graph for this function:

Here is the caller graph for this function:

DWORD client_cli_verify_certificate ( freerdp *  instance,
const char *  common_name,
const char *  subject,
const char *  issuer,
const char *  fingerprint,
BOOL  host_mismatch 
)

Callback set in the rdp_freerdp structure, and used to make a certificate validation when the connection requires it. This function will actually be called by tls_verify_certificate().

See also
rdp_client_connect() and tls_connect()
Parameters
instance- pointer to the rdp_freerdp structure that contains the connection settings
common_name
subject
issuer
fingerprint
host_mismatchIndicates the certificate host does not match.
Returns
1 if the certificate is trusted, 2 if temporary trusted, 0 otherwise.

Here is the call graph for this function:

DWORD client_cli_verify_certificate_ex ( freerdp *  instance,
const char *  host,
UINT16  port,
const char *  common_name,
const char *  subject,
const char *  issuer,
const char *  fingerprint,
DWORD  flags 
)

Callback set in the rdp_freerdp structure, and used to make a certificate validation when the connection requires it. This function will actually be called by tls_verify_certificate().

See also
rdp_client_connect() and tls_connect()
Parameters
instancepointer to the rdp_freerdp structure that contains the connection settings
hostThe host currently connecting to
portThe port currently connecting to
common_nameThe common name of the certificate, should match host or an alias of it
subjectThe subject of the certificate
issuerThe certificate issuer name
fingerprintThe fingerprint of the certificate
flagsSee VERIFY_CERT_FLAG_* for possible values.
Returns
1 if the certificate is trusted, 2 if temporary trusted, 0 otherwise.

Here is the call graph for this function:

Here is the caller graph for this function:

DWORD client_cli_verify_changed_certificate ( freerdp *  instance,
const char *  common_name,
const char *  subject,
const char *  issuer,
const char *  fingerprint,
const char *  old_subject,
const char *  old_issuer,
const char *  old_fingerprint 
)

Callback set in the rdp_freerdp structure, and used to make a certificate validation when a stored certificate does not match the remote counterpart. This function will actually be called by tls_verify_certificate().

See also
rdp_client_connect() and tls_connect()
Parameters
instance- pointer to the rdp_freerdp structure that contains the connection settings
common_name
subject
issuer
fingerprint
old_subject
old_issuer
old_fingerprint
Returns
1 if the certificate is trusted, 2 if temporary trusted, 0 otherwise.

Here is the call graph for this function:

DWORD client_cli_verify_changed_certificate_ex ( freerdp *  instance,
const char *  host,
UINT16  port,
const char *  common_name,
const char *  subject,
const char *  issuer,
const char *  fingerprint,
const char *  old_subject,
const char *  old_issuer,
const char *  old_fingerprint,
DWORD  flags 
)

Callback set in the rdp_freerdp structure, and used to make a certificate validation when a stored certificate does not match the remote counterpart. This function will actually be called by tls_verify_certificate().

See also
rdp_client_connect() and tls_connect()
Parameters
instancepointer to the rdp_freerdp structure that contains the connection settings
hostThe host currently connecting to
portThe port currently connecting to
common_nameThe common name of the certificate, should match host or an alias of it
subjectThe subject of the certificate
issuerThe certificate issuer name
fingerprintThe fingerprint of the certificate
old_subjectThe subject of the previous certificate
old_issuerThe previous certificate issuer name
old_fingerprintThe fingerprint of the previous certificate
flagsSee VERIFY_CERT_FLAG_* for possible values.
Returns
1 if the certificate is trusted, 2 if temporary trusted, 0 otherwise.

Here is the call graph for this function:

Here is the caller graph for this function:

static void freerdp_client_common_free ( freerdp *  instance,
rdpContext *  context 
)
static

Here is the caller graph for this function:

static BOOL freerdp_client_common_new ( freerdp *  instance,
rdpContext *  context 
)
static

Here is the caller graph for this function:

void freerdp_client_context_free ( rdpContext *  context)

Here is the call graph for this function:

Here is the caller graph for this function:

rdpContext* freerdp_client_context_new ( RDP_CLIENT_ENTRY_POINTS pEntryPoints)

Here is the call graph for this function:

Here is the caller graph for this function:

freerdp* freerdp_client_get_instance ( rdpContext *  context)
HANDLE freerdp_client_get_thread ( rdpContext *  context)

Here is the caller graph for this function:

int freerdp_client_settings_parse_assistance_file ( rdpSettings *  settings,
int  argc,
char *  argv[] 
)

Here is the call graph for this function:

Here is the caller graph for this function:

int freerdp_client_settings_parse_command_line ( rdpSettings *  settings,
int  argc,
char **  argv,
BOOL  allowUnknown 
)

Here is the call graph for this function:

Here is the caller graph for this function:

int freerdp_client_settings_parse_connection_file ( rdpSettings *  settings,
const char *  filename 
)

Here is the call graph for this function:

Here is the caller graph for this function:

int freerdp_client_settings_parse_connection_file_buffer ( rdpSettings *  settings,
const BYTE buffer,
size_t  size 
)

Here is the call graph for this function:

static BOOL freerdp_client_settings_post_process ( rdpSettings *  settings)
static

Here is the call graph for this function:

Here is the caller graph for this function:

int freerdp_client_settings_write_connection_file ( const rdpSettings *  settings,
const char *  filename,
BOOL  unicode 
)

Here is the call graph for this function:

int freerdp_client_start ( rdpContext *  context)

Here is the caller graph for this function:

int freerdp_client_stop ( rdpContext *  context)

Here is the caller graph for this function: