Skip to content

Commit

Permalink
Add support for using smartcard with FreeRDP
Browse files Browse the repository at this point in the history
  • Loading branch information
Aaron Small committed Mar 3, 2012
1 parent 6c188fb commit 9222e88
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 0 deletions.
5 changes: 5 additions & 0 deletions remmina-plugins/rdp/rdp_file.c
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,10 @@ static void remmina_rdp_file_import_field(RemminaFile* remminafile, const gchar*
{
remmina_plugin_service->file_set_int(remminafile, "shareprinter", (atoi (value) == 1));
}
else if (g_strcmp0(key, "redirectsmartcard") == 0)
{
remmina_plugin_service->file_set_int(remminafile, "sharesmartcard", (atoi (value) == 1));
}
else if (g_strcmp0(key, "redirectclipboard") == 0)
{
remmina_plugin_service->file_set_int(remminafile, "disableclipboard", (atoi (value) != 1));
Expand Down Expand Up @@ -268,6 +272,7 @@ gboolean remmina_rdp_file_export_channel(RemminaFile* remminafile, FILE* fp)
else
fprintf(fp, "audiomode:i:2\r\n");
fprintf(fp, "redirectprinters:i:%i\r\n", remmina_plugin_service->file_get_int(remminafile, "shareprinter", FALSE) ? 1 : 0);
fprintf(fp, "redirectsmartcard:i:%i\r\n", remmina_plugin_service->file_get_int(remminafile, "sharesmartcard", FALSE) ? 1 : 0);
fprintf(fp, "redirectcomports:i:0\r\n");
fprintf(fp, "redirectsmartcards:i:0\r\n");
fprintf(fp, "redirectclipboard:i:1\r\n");
Expand Down
9 changes: 9 additions & 0 deletions remmina-plugins/rdp/rdp_plugin.c
Original file line number Diff line number Diff line change
Expand Up @@ -812,6 +812,14 @@ static gboolean remmina_rdp_main(RemminaProtocolWidget* gp)
rdpdr_num++;
}

if (remmina_plugin_service->file_get_int(remminafile, "sharesmartcard", FALSE))
{
rfi->rdpdr_data[rdpdr_num].size = sizeof(RDP_PLUGIN_DATA);
rfi->rdpdr_data[rdpdr_num].data[0] = "scard";
rfi->rdpdr_data[rdpdr_num].data[1] = "scard";
rdpdr_num++;
}

if (rdpdr_num)
{
freerdp_channels_load_plugin(rfi->channels, rfi->settings, "rdpdr", rfi->rdpdr_data);
Expand Down Expand Up @@ -1042,6 +1050,7 @@ static const RemminaProtocolSetting remmina_rdp_advanced_settings[] =
{ REMMINA_PROTOCOL_SETTING_TYPE_TEXT, "exec", N_("Startup program"), FALSE, NULL, NULL },
{ REMMINA_PROTOCOL_SETTING_TYPE_TEXT, "execpath", N_("Startup path"), FALSE, NULL, NULL },
{ REMMINA_PROTOCOL_SETTING_TYPE_CHECK, "shareprinter", N_("Share local printers"), TRUE, NULL, NULL },
{ REMMINA_PROTOCOL_SETTING_TYPE_CHECK, "sharesmartcard", N_("Share smartcard"), TRUE, NULL, NULL },
{ REMMINA_PROTOCOL_SETTING_TYPE_CHECK, "disableclipboard", N_("Disable clipboard sync"), FALSE, NULL, NULL },
{ REMMINA_PROTOCOL_SETTING_TYPE_CHECK, "console", N_("Attach to console (Windows 2003 / 2003 R2)"), FALSE, NULL, NULL },
{ REMMINA_PROTOCOL_SETTING_TYPE_END, NULL, NULL, FALSE, NULL, NULL }
Expand Down

0 comments on commit 9222e88

Please sign in to comment.