diff --git a/src/protocols/rdp/guac_rdpdr/rdpdr_fs_messages_vol_info.c b/src/protocols/rdp/guac_rdpdr/rdpdr_fs_messages_vol_info.c index d2c4fb76..1ebbaec7 100644 --- a/src/protocols/rdp/guac_rdpdr/rdpdr_fs_messages_vol_info.c +++ b/src/protocols/rdp/guac_rdpdr/rdpdr_fs_messages_vol_info.c @@ -91,7 +91,10 @@ void guac_rdpdr_fs_process_query_attribute_info(guac_rdpdr_device* device, wStre completion_id, STATUS_SUCCESS, 16 + GUAC_FILESYSTEM_NAME_LENGTH); Stream_Write_UINT32(output_stream, 12 + GUAC_FILESYSTEM_NAME_LENGTH); - Stream_Write_UINT32(output_stream, FILE_UNICODE_ON_DISK); /* FileSystemAttributes */ + Stream_Write_UINT32(output_stream, + FILE_UNICODE_ON_DISK + | FILE_CASE_SENSITIVE_SEARCH + | FILE_CASE_PRESERVED_NAMES); /* FileSystemAttributes */ Stream_Write_UINT32(output_stream, GUAC_RDP_FS_MAX_PATH ); /* MaximumComponentNameLength */ Stream_Write_UINT32(output_stream, GUAC_FILESYSTEM_NAME_LENGTH); Stream_Write(output_stream, GUAC_FILESYSTEM_NAME, diff --git a/src/protocols/rdp/rdp_fs.c b/src/protocols/rdp/rdp_fs.c index cb99915b..6da29209 100644 --- a/src/protocols/rdp/rdp_fs.c +++ b/src/protocols/rdp/rdp_fs.c @@ -273,6 +273,9 @@ int guac_rdp_fs_open(guac_rdp_fs* fs, const char* path, } + GUAC_RDP_DEBUG(2, "native open: real_path=\"%s\", flags=0x%x", + real_path, flags); + /* Open file */ fd = open(real_path, flags, S_IRUSR | S_IWUSR); if (fd == -1) { diff --git a/src/protocols/rdp/rdp_fs.h b/src/protocols/rdp/rdp_fs.h index 274d183e..06a1d388 100644 --- a/src/protocols/rdp/rdp_fs.h +++ b/src/protocols/rdp/rdp_fs.h @@ -161,7 +161,9 @@ * Filesystem attributes. */ -#define FILE_UNICODE_ON_DISK 0x00000004 +#define FILE_CASE_SENSITIVE_SEARCH 0x00000001 +#define FILE_CASE_PRESERVED_NAMES 0x00000002 +#define FILE_UNICODE_ON_DISK 0x00000004 /* * File create options.