Merge branch 'testing-common-ssh'

Conflicts:
	src/protocols/rdp/client.c
This commit is contained in:
Michael Jumper 2015-08-13 16:29:22 -07:00
commit 48bbc6a898
2 changed files with 28 additions and 5 deletions

View File

@ -138,6 +138,7 @@ const char* GUAC_CLIENT_ARGS[] = {
"sftp-password", "sftp-password",
"sftp-private-key", "sftp-private-key",
"sftp-passphrase", "sftp-passphrase",
"sftp-directory",
#endif #endif
NULL NULL
@ -186,6 +187,7 @@ enum RDP_ARGS_IDX {
IDX_SFTP_PASSWORD, IDX_SFTP_PASSWORD,
IDX_SFTP_PRIVATE_KEY, IDX_SFTP_PRIVATE_KEY,
IDX_SFTP_PASSPHRASE, IDX_SFTP_PASSPHRASE,
IDX_SFTP_DIRECTORY,
#endif #endif
RDP_ARGS_COUNT RDP_ARGS_COUNT
@ -304,10 +306,15 @@ BOOL rdp_freerdp_pre_connect(freerdp* instance) {
/* Load filesystem if drive enabled */ /* Load filesystem if drive enabled */
if (guac_client_data->settings.drive_enabled) { if (guac_client_data->settings.drive_enabled) {
/* Allocate filesystem */
guac_client_data->filesystem = guac_client_data->filesystem =
guac_rdp_fs_alloc(client, guac_client_data->settings.drive_path, guac_rdp_fs_alloc(client, guac_client_data->settings.drive_path);
guac_client_data->settings.create_drive_path);
/* Use for basic uploads if no other handler set */
if (client->file_handler == NULL)
client->file_handler = guac_rdp_upload_file_handler; client->file_handler = guac_rdp_upload_file_handler;
} }
/* If RDPDR required, load it */ /* If RDPDR required, load it */
@ -906,8 +913,16 @@ int guac_client_init(guac_client* client, int argc, char** argv) {
return 1; return 1;
} }
/* Use SFTP for basic uploads, if drive not enabled */ /* Configure destination for basic uploads, if specified */
if (!settings->drive_enabled) if (argv[IDX_SFTP_DIRECTORY][0] != '\0') {
client->file_handler = guac_rdp_sftp_file_handler;
guac_common_ssh_sftp_set_upload_path(
guac_client_data->sftp_filesystem,
argv[IDX_SFTP_DIRECTORY]);
}
/* Otherwise, use SFTP for basic uploads only if drive not enabled */
else if (!settings->drive_enabled)
client->file_handler = guac_rdp_sftp_file_handler; client->file_handler = guac_rdp_sftp_file_handler;
guac_client_log(client, GUAC_LOG_DEBUG, guac_client_log(client, GUAC_LOG_DEBUG,

View File

@ -86,6 +86,7 @@ const char* GUAC_CLIENT_ARGS[] = {
"sftp-password", "sftp-password",
"sftp-private-key", "sftp-private-key",
"sftp-passphrase", "sftp-passphrase",
"sftp-directory",
#endif #endif
NULL NULL
@ -127,6 +128,7 @@ enum VNC_ARGS_IDX {
IDX_SFTP_PASSWORD, IDX_SFTP_PASSWORD,
IDX_SFTP_PRIVATE_KEY, IDX_SFTP_PRIVATE_KEY,
IDX_SFTP_PASSPHRASE, IDX_SFTP_PASSPHRASE,
IDX_SFTP_DIRECTORY,
#endif #endif
VNC_ARGS_COUNT VNC_ARGS_COUNT
@ -501,6 +503,12 @@ int guac_client_init(guac_client* client, int argc, char** argv) {
return 1; return 1;
} }
/* Configure destination for basic uploads, if specified */
if (argv[IDX_SFTP_DIRECTORY][0] != '\0')
guac_common_ssh_sftp_set_upload_path(
guac_client_data->sftp_filesystem,
argv[IDX_SFTP_DIRECTORY]);
/* Set file handler for basic uploads */ /* Set file handler for basic uploads */
client->file_handler = guac_vnc_sftp_file_handler; client->file_handler = guac_vnc_sftp_file_handler;