Add drive-enabled option.
This commit is contained in:
parent
08eb5625fc
commit
f07cd58707
@ -100,6 +100,7 @@ const char* GUAC_CLIENT_ARGS[] = {
|
|||||||
"color-depth",
|
"color-depth",
|
||||||
"disable-audio",
|
"disable-audio",
|
||||||
"enable-printing",
|
"enable-printing",
|
||||||
|
"enable-drive",
|
||||||
"console",
|
"console",
|
||||||
"console-audio",
|
"console-audio",
|
||||||
"server-layout",
|
"server-layout",
|
||||||
@ -122,6 +123,7 @@ enum RDP_ARGS_IDX {
|
|||||||
IDX_COLOR_DEPTH,
|
IDX_COLOR_DEPTH,
|
||||||
IDX_DISABLE_AUDIO,
|
IDX_DISABLE_AUDIO,
|
||||||
IDX_ENABLE_PRINTING,
|
IDX_ENABLE_PRINTING,
|
||||||
|
IDX_ENABLE_DRIVE,
|
||||||
IDX_CONSOLE,
|
IDX_CONSOLE,
|
||||||
IDX_CONSOLE_AUDIO,
|
IDX_CONSOLE_AUDIO,
|
||||||
IDX_SERVER_LAYOUT,
|
IDX_SERVER_LAYOUT,
|
||||||
@ -180,8 +182,9 @@ BOOL rdp_freerdp_pre_connect(freerdp* instance) {
|
|||||||
|
|
||||||
} /* end if audio enabled */
|
} /* end if audio enabled */
|
||||||
|
|
||||||
/* If printing enabled, load rdpdr */
|
/* If RDPDR required, load it */
|
||||||
if (guac_client_data->settings.printing_enabled) {
|
if (guac_client_data->settings.printing_enabled
|
||||||
|
|| guac_client_data->settings.drive_enabled) {
|
||||||
|
|
||||||
/* Load RDPDR plugin */
|
/* Load RDPDR plugin */
|
||||||
if (freerdp_channels_load_plugin(channels, instance->settings,
|
if (freerdp_channels_load_plugin(channels, instance->settings,
|
||||||
@ -189,7 +192,7 @@ BOOL rdp_freerdp_pre_connect(freerdp* instance) {
|
|||||||
guac_client_log_error(client,
|
guac_client_log_error(client,
|
||||||
"Failed to load guacdr plugin.");
|
"Failed to load guacdr plugin.");
|
||||||
|
|
||||||
} /* end if printing enabled */
|
}
|
||||||
|
|
||||||
/* Init color conversion structure */
|
/* Init color conversion structure */
|
||||||
clrconv = calloc(1, sizeof(CLRCONV));
|
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 =
|
guac_client_data->settings.printing_enabled =
|
||||||
(strcmp(argv[IDX_ENABLE_PRINTING], "true") == 0);
|
(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 */
|
/* Store client data */
|
||||||
guac_client_data->rdp_inst = rdp_inst;
|
guac_client_data->rdp_inst = rdp_inst;
|
||||||
guac_client_data->bounded = FALSE;
|
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,
|
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) {
|
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,
|
guac_client_log_error(device->rdpdr->client,
|
||||||
"Unknown filesystem I/O request function: 0x%x/0x%x",
|
"Unknown filesystem I/O request function: 0x%x/0x%x",
|
||||||
major_func, minor_func);
|
major_func, minor_func);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -145,6 +145,11 @@ typedef struct guac_rdp_settings {
|
|||||||
*/
|
*/
|
||||||
int printing_enabled;
|
int printing_enabled;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether the virtual drive is enabled.
|
||||||
|
*/
|
||||||
|
int drive_enabled;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Whether this session is a console session.
|
* Whether this session is a console session.
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user