Remmina - The GTK+ Remote Desktop Client  v1.4.34
Remmina is a remote desktop client written in GTK+, aiming to be useful for system administrators and travellers, who need to work with lots of remote computers in front of either large monitors or tiny netbooks. Remmina supports multiple network protocols in an integrated and consistent user interface. Currently RDP, VNC, NX, XDMCP and SSH are supported.
rdp_plugin.c File Reference

Go to the source code of this file.

Functions

static HANDLE freerdp_abort_event (rdpContext *context)
 
static BOOL freerdp_settings_set_pointer_len (rdpSettings *settings, size_t id, const void *data, size_t len)
 
static void freerdp_abort_connect_context (rdpContext *context)
 
static CLPARAM ** remmina_rdp_CommandLineParseCommaSeparatedValuesEx (const char *name, const char *list, size_t *count)
 
static CLPARAM ** remmina_rdp_CommandLineParseCommaSeparatedValues (const char *list, size_t *count)
 
static BOOL rf_process_event_queue (RemminaProtocolWidget *gp)
 
static gboolean remmina_rdp_tunnel_init (RemminaProtocolWidget *gp)
 
static BOOL rf_auto_reconnect (rfContext *rfi)
 
static BOOL rf_begin_paint (rdpContext *context)
 
static BOOL rf_end_paint (rdpContext *context)
 
static BOOL rf_desktop_resize (rdpContext *context)
 
static BOOL rf_play_sound (rdpContext *context, const PLAY_SOUND_UPDATE *play_sound)
 
static BOOL rf_keyboard_set_indicators (rdpContext *context, UINT16 led_flags)
 
static BOOL rf_keyboard_set_ime_status (rdpContext *context, UINT16 imeId, UINT32 imeState, UINT32 imeConvMode)
 
static BOOL remmina_rdp_pre_connect (freerdp *instance)
 
static BOOL remmina_rdp_post_connect (freerdp *instance)
 
static BOOL remmina_rdp_authenticate (freerdp *instance, char **username, char **password, char **domain)
 
static BOOL remmina_rdp_gw_authenticate (freerdp *instance, char **username, char **password, char **domain)
 
static BOOL remmina_rdp_authenticate_ex (freerdp *instance, char **username, char **password, char **domain, rdp_auth_reason reason)
 
static BOOL remmina_rdp_choose_smartcard (freerdp *instance, SmartcardCertInfo **cert_list, DWORD count, DWORD *choice, BOOL gateway)
 
static BOOL remmina_rdp_get_access_token (freerdp *instance, AccessTokenType tokenType, char **token, size_t count,...)
 
static BOOL remmina_rdp_present_gateway_message (freerdp *instance, UINT32 type, BOOL isDisplayMandatory, BOOL isConsentMandatory, size_t length, const WCHAR *message)
 
static int remmina_rdp_logon_error_info (freerdp *instance, UINT32 data, UINT32 type)
 
static SSIZE_T remmina_rdp_retry_dialog (freerdp *instance, const char *what, size_t current, void *userarg)
 
static void remmina_rdp_post_final_disconnect (freerdp *instance)
 
static DWORD remmina_rdp_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)
 
static DWORD remmina_rdp_verify_certificate (freerdp *instance, const char *common_name, const char *subject, const char *issuer, const char *fingerprint, BOOL host_mismatch) __attribute__((unused))
 
static DWORD remmina_rdp_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)
 
static void remmina_rdp_post_disconnect (freerdp *instance)
 
static void remmina_rdp_main_loop (RemminaProtocolWidget *gp)
 

Variables

RemminaPluginServiceremmina_plugin_service = NULL
 
static BOOL gfx_h264_available = FALSE
 
static time_t last_time
 

Function Documentation

◆ freerdp_abort_connect_context()

static void freerdp_abort_connect_context ( rdpContext *  context)
static

Definition at line 135 of file rdp_plugin.c.

◆ freerdp_abort_event()

static HANDLE freerdp_abort_event ( rdpContext *  context)
static

Definition at line 117 of file rdp_plugin.c.

◆ freerdp_settings_set_pointer_len()

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

Definition at line 122 of file rdp_plugin.c.

◆ remmina_rdp_authenticate()

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

Definition at line 819 of file rdp_plugin.c.

◆ remmina_rdp_authenticate_ex()

static BOOL remmina_rdp_authenticate_ex ( freerdp *  instance,
char **  username,
char **  password,
char **  domain,
rdp_auth_reason  reason 
)
static

Definition at line 958 of file rdp_plugin.c.

◆ remmina_rdp_choose_smartcard()

static BOOL remmina_rdp_choose_smartcard ( freerdp *  instance,
SmartcardCertInfo **  cert_list,
DWORD  count,
DWORD *  choice,
BOOL  gateway 
)
static

Definition at line 1072 of file rdp_plugin.c.

◆ remmina_rdp_CommandLineParseCommaSeparatedValues()

static CLPARAM** remmina_rdp_CommandLineParseCommaSeparatedValues ( const char *  list,
size_t *  count 
)
static

Definition at line 233 of file rdp_plugin.c.

◆ remmina_rdp_CommandLineParseCommaSeparatedValuesEx()

static CLPARAM** remmina_rdp_CommandLineParseCommaSeparatedValuesEx ( const char *  name,
const char *  list,
size_t *  count 
)
static

Definition at line 154 of file rdp_plugin.c.

◆ remmina_rdp_get_access_token()

static BOOL remmina_rdp_get_access_token ( freerdp *  instance,
AccessTokenType  tokenType,
char **  token,
size_t  count,
  ... 
)
static

Definition at line 1080 of file rdp_plugin.c.

◆ remmina_rdp_gw_authenticate()

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

Definition at line 878 of file rdp_plugin.c.

◆ remmina_rdp_logon_error_info()

static int remmina_rdp_logon_error_info ( freerdp *  instance,
UINT32  data,
UINT32  type 
)
static

Definition at line 1097 of file rdp_plugin.c.

◆ remmina_rdp_main_loop()

static void remmina_rdp_main_loop ( RemminaProtocolWidget gp)
static

Callback function used by cupsEnumDests

  • For each enumerated local printer tries to set the Printer Name and Driver.
    Returns
    1 if there are other printers to scan or 0 when it's done.
    Warning
    printer-make-and-model is not always the same as on the Windows, therefore it fails finding to right one and it fails to add the printer.
    We pass NULL and we do not check for errors. The following code is how it is supposed to work.
    Todo:
    Ask CUPS mailing list for help.
const char *model = cupsGetOption("printer-make-and-model",
dest->num_options,
dest->options);

When remmina_rdp_find_prdriver doesn't return a DriverName it means that we don't want to share that printer

Proxy support Proxy settings are hidden at the moment as an advanced feature

multitransport enables RDP8 UDP support

Todo:
we should lock FreeRDP subthread to update rfi->primary_buffer, rfi->gdi and w/h, from here to memcpy, but… how ?

Definition at line 1199 of file rdp_plugin.c.

◆ remmina_rdp_post_connect()

static BOOL remmina_rdp_post_connect ( freerdp *  instance)
static

Do not use alpha as it's not used with the desktop CAIRO_FORMAT_ARGB32 See https://gitlab.com/Remmina/Remmina/-/issues/2456

Definition at line 743 of file rdp_plugin.c.

◆ remmina_rdp_post_disconnect()

static void remmina_rdp_post_disconnect ( freerdp *  instance)
static

Definition at line 1182 of file rdp_plugin.c.

◆ remmina_rdp_post_final_disconnect()

static void remmina_rdp_post_final_disconnect ( freerdp *  instance)
static

Definition at line 1112 of file rdp_plugin.c.

◆ remmina_rdp_pre_connect()

static BOOL remmina_rdp_pre_connect ( freerdp *  instance)
static

Definition at line 718 of file rdp_plugin.c.

◆ remmina_rdp_present_gateway_message()

static BOOL remmina_rdp_present_gateway_message ( freerdp *  instance,
UINT32  type,
BOOL  isDisplayMandatory,
BOOL  isConsentMandatory,
size_t  length,
const WCHAR *  message 
)
static

Definition at line 1088 of file rdp_plugin.c.

◆ remmina_rdp_retry_dialog()

static SSIZE_T remmina_rdp_retry_dialog ( freerdp *  instance,
const char *  what,
size_t  current,
void *  userarg 
)
static

Definition at line 1104 of file rdp_plugin.c.

◆ remmina_rdp_tunnel_init()

static gboolean remmina_rdp_tunnel_init ( RemminaProtocolWidget gp)
static

Definition at line 385 of file rdp_plugin.c.

◆ remmina_rdp_verify_certificate()

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

Definition at line 1141 of file rdp_plugin.c.

◆ remmina_rdp_verify_certificate_ex()

static DWORD remmina_rdp_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 
)
static

Definition at line 1118 of file rdp_plugin.c.

◆ remmina_rdp_verify_changed_certificate_ex()

static DWORD remmina_rdp_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 
)
static

Definition at line 1160 of file rdp_plugin.c.

◆ rf_auto_reconnect()

static BOOL rf_auto_reconnect ( rfContext rfi)
static

Definition at line 444 of file rdp_plugin.c.

◆ rf_begin_paint()

static BOOL rf_begin_paint ( rdpContext *  context)
static

Definition at line 561 of file rdp_plugin.c.

◆ rf_desktop_resize()

static BOOL rf_desktop_resize ( rdpContext *  context)
static

Definition at line 623 of file rdp_plugin.c.

◆ rf_end_paint()

static BOOL rf_end_paint ( rdpContext *  context)
static

Definition at line 576 of file rdp_plugin.c.

◆ rf_keyboard_set_ime_status()

static BOOL rf_keyboard_set_ime_status ( rdpContext *  context,
UINT16  imeId,
UINT32  imeState,
UINT32  imeConvMode 
)
static

Definition at line 706 of file rdp_plugin.c.

◆ rf_keyboard_set_indicators()

static BOOL rf_keyboard_set_indicators ( rdpContext *  context,
UINT16  led_flags 
)
static

Definition at line 677 of file rdp_plugin.c.

◆ rf_play_sound()

static BOOL rf_play_sound ( rdpContext *  context,
const PLAY_SOUND_UPDATE *  play_sound 
)
static

Definition at line 661 of file rdp_plugin.c.

◆ rf_process_event_queue()

static BOOL rf_process_event_queue ( RemminaProtocolWidget gp)
static

Definition at line 242 of file rdp_plugin.c.

Variable Documentation

◆ gfx_h264_available

BOOL gfx_h264_available = FALSE
static

Definition at line 143 of file rdp_plugin.c.

◆ last_time

time_t last_time
static

Definition at line 145 of file rdp_plugin.c.

◆ remmina_plugin_service

RemminaPluginService* remmina_plugin_service = NULL

Definition at line 141 of file rdp_plugin.c.