Add drive-enabled option.
This commit is contained in:
parent
08eb5625fc
commit
f07cd58707
@ -100,6 +100,7 @@ const char* GUAC_CLIENT_ARGS[] = {
|
||||
"color-depth",
|
||||
"disable-audio",
|
||||
"enable-printing",
|
||||
"enable-drive",
|
||||
"console",
|
||||
"console-audio",
|
||||
"server-layout",
|
||||
@ -122,6 +123,7 @@ enum RDP_ARGS_IDX {
|
||||
IDX_COLOR_DEPTH,
|
||||
IDX_DISABLE_AUDIO,
|
||||
IDX_ENABLE_PRINTING,
|
||||
IDX_ENABLE_DRIVE,
|
||||
IDX_CONSOLE,
|
||||
IDX_CONSOLE_AUDIO,
|
||||
IDX_SERVER_LAYOUT,
|
||||
@ -180,8 +182,9 @@ BOOL rdp_freerdp_pre_connect(freerdp* instance) {
|
||||
|
||||
} /* end if audio enabled */
|
||||
|
||||
/* If printing enabled, load rdpdr */
|
||||
if (guac_client_data->settings.printing_enabled) {
|
||||
/* If RDPDR required, load it */
|
||||
if (guac_client_data->settings.printing_enabled
|
||||
|| guac_client_data->settings.drive_enabled) {
|
||||
|
||||
/* Load RDPDR plugin */
|
||||
if (freerdp_channels_load_plugin(channels, instance->settings,
|
||||
@ -189,7 +192,7 @@ BOOL rdp_freerdp_pre_connect(freerdp* instance) {
|
||||
guac_client_log_error(client,
|
||||
"Failed to load guacdr plugin.");
|
||||
|
||||
} /* end if printing enabled */
|
||||
}
|
||||
|
||||
/* Init color conversion structure */
|
||||
clrconv = calloc(1, sizeof(CLRCONV));
|
||||
@ -532,6 +535,10 @@ int guac_client_init(guac_client* client, int argc, char** argv) {
|
||||
guac_client_data->settings.printing_enabled =
|
||||
(strcmp(argv[IDX_ENABLE_PRINTING], "true") == 0);
|
||||
|
||||
/* Drive enable/disable */
|
||||
guac_client_data->settings.drive_enabled =
|
||||
(strcmp(argv[IDX_ENABLE_DRIVE], "true") == 0);
|
||||
|
||||
/* Store client data */
|
||||
guac_client_data->rdp_inst = rdp_inst;
|
||||
guac_client_data->bounded = FALSE;
|
||||
|
@ -66,9 +66,64 @@ static void guac_rdpdr_device_fs_announce_handler(guac_rdpdr_device* device,
|
||||
static void guac_rdpdr_device_fs_iorequest_handler(guac_rdpdr_device* device,
|
||||
wStream* input_stream, int file_id, int completion_id, int major_func, int minor_func) {
|
||||
|
||||
switch (major_func) {
|
||||
|
||||
/* File open */
|
||||
case IRP_MJ_CREATE:
|
||||
break;
|
||||
|
||||
/* File close */
|
||||
case IRP_MJ_CLOSE:
|
||||
break;
|
||||
|
||||
/* File read */
|
||||
case IRP_MJ_READ:
|
||||
break;
|
||||
|
||||
/* File write */
|
||||
case IRP_MJ_WRITE:
|
||||
break;
|
||||
|
||||
case IRP_MJ_DEVICE_CONTROL:
|
||||
guac_client_log_error(device->rdpdr->client,
|
||||
"IRP_MJ_DEVICE_CONTROL unsupported");
|
||||
break;
|
||||
|
||||
case IRP_MJ_QUERY_VOLUME_INFORMATION:
|
||||
guac_client_log_error(device->rdpdr->client,
|
||||
"IRP_MJ_QUERY_VOLUME_INFORMATION unsupported");
|
||||
break;
|
||||
|
||||
case IRP_MJ_SET_VOLUME_INFORMATION:
|
||||
guac_client_log_error(device->rdpdr->client,
|
||||
"IRP_MJ_SET_VOLUME_INFORMATION unsupported");
|
||||
break;
|
||||
|
||||
case IRP_MJ_QUERY_INFORMATION:
|
||||
guac_client_log_error(device->rdpdr->client,
|
||||
"IRP_MJ_QUERY_INFORMATION unsupported");
|
||||
break;
|
||||
|
||||
case IRP_MJ_SET_INFORMATION:
|
||||
guac_client_log_error(device->rdpdr->client,
|
||||
"IRP_MJ_SET_INFORMATION unsupported");
|
||||
break;
|
||||
|
||||
case IRP_MJ_DIRECTORY_CONTROL:
|
||||
guac_client_log_error(device->rdpdr->client,
|
||||
"IRP_MJ_DIRECTORY_CONTROL unsupported");
|
||||
break;
|
||||
|
||||
case IRP_MJ_LOCK_CONTROL:
|
||||
guac_client_log_error(device->rdpdr->client,
|
||||
"IRP_MJ_LOCK_CONTROL unsupported");
|
||||
break;
|
||||
|
||||
default:
|
||||
guac_client_log_error(device->rdpdr->client,
|
||||
"Unknown filesystem I/O request function: 0x%x/0x%x",
|
||||
major_func, minor_func);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -145,6 +145,11 @@ typedef struct guac_rdp_settings {
|
||||
*/
|
||||
int printing_enabled;
|
||||
|
||||
/**
|
||||
* Whether the virtual drive is enabled.
|
||||
*/
|
||||
int drive_enabled;
|
||||
|
||||
/**
|
||||
* Whether this session is a console session.
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user