Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/Remmina/Remmina.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiovanni Panozzo <giovanni@panozzo.it>2014-08-25 20:00:58 +0400
committerGiovanni Panozzo <giovanni@panozzo.it>2014-08-25 20:00:58 +0400
commitb841e1437f11f40232f7954e4f095be3d8778e78 (patch)
tree053a133348a93d39f0885ae4a3aa00055795fb16 /remmina-plugins/rdp
parentd6910739a5dc7f68fb422720bab68fbc311132ba (diff)
Fixes #270 bad shared folder name on window drive
Diffstat (limited to 'remmina-plugins/rdp')
-rw-r--r--remmina-plugins/rdp/rdp_plugin.c27
1 files changed, 19 insertions, 8 deletions
diff --git a/remmina-plugins/rdp/rdp_plugin.c b/remmina-plugins/rdp/rdp_plugin.c
index 4c2564eff..44d107bb5 100644
--- a/remmina-plugins/rdp/rdp_plugin.c
+++ b/remmina-plugins/rdp/rdp_plugin.c
@@ -55,6 +55,7 @@
#define REMMINA_RDP_FEATURE_UNFOCUS 3
RemminaPluginService* remmina_plugin_service = NULL;
+static char remmina_rdp_plugin_default_drive_name[]="RemminaDisk";
void rf_get_fds(RemminaProtocolWidget* gp, void** rfds, int* rcount)
{
@@ -825,16 +826,26 @@ static gboolean remmina_rdp_main(RemminaProtocolWidget* gp)
if (cs && cs[0] == '/')
{
- RDPDR_DRIVE* drive;
- drive = (RDPDR_DRIVE*) malloc(sizeof(RDPDR_DRIVE));
- ZeroMemory(drive, sizeof(RDPDR_DRIVE));
+ RDPDR_DRIVE* drive;
+ gsize sz;
- drive->Type = RDPDR_DTYP_FILESYSTEM;
- drive->Name = _strdup(s);
- drive->Path = _strdup(cs);
+ drive = (RDPDR_DRIVE*) malloc(sizeof(RDPDR_DRIVE));
+ ZeroMemory(drive, sizeof(RDPDR_DRIVE));
- freerdp_device_collection_add(rfi->settings, (RDPDR_DEVICE*) drive);
- rfi->settings->DeviceRedirection = TRUE;
+ s = strrchr( cs, '/' );
+ if ( s == NULL || s[1] == 0 )
+ s = remmina_rdp_plugin_default_drive_name;
+ else
+ s++;
+ s = g_convert_with_fallback(s, -1, "ascii", "utf-8", "_", NULL, &sz, NULL);
+
+ drive->Type = RDPDR_DTYP_FILESYSTEM;
+ drive->Name = _strdup(s);
+ drive->Path = _strdup(cs);
+ g_free(s);
+
+ freerdp_device_collection_add(rfi->settings, (RDPDR_DEVICE*) drive);
+ rfi->settings->DeviceRedirection = TRUE;
rdpdr_num++;
}