From fdf2036cfef5513ff09dd4811a1cb2a98cc8a6ac Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Tue, 18 Mar 2014 12:26:01 -0700 Subject: [PATCH] GUAC-548: Migrate to new error codes throughout protocol support. --- src/libguac/client-handlers.c | 10 +++++----- src/protocols/rdp/client.c | 8 ++++---- src/protocols/rdp/guac_handlers.c | 4 ++-- src/protocols/rdp/rdp_stream.c | 14 +++++++------- src/protocols/ssh/guac_handlers.c | 2 +- src/protocols/ssh/sftp.c | 10 +++++----- src/protocols/ssh/ssh_client.c | 10 +++++----- src/protocols/vnc/client.c | 4 ++-- 8 files changed, 31 insertions(+), 31 deletions(-) diff --git a/src/libguac/client-handlers.c b/src/libguac/client-handlers.c index 2b7d7f16..3028fa8c 100644 --- a/src/libguac/client-handlers.c +++ b/src/libguac/client-handlers.c @@ -130,7 +130,7 @@ int __guac_handle_file(guac_client* client, guac_instruction* instruction) { dummy_stream.index = stream_index; guac_protocol_send_ack(client->socket, &dummy_stream, - "Invalid stream index", GUAC_PROTOCOL_STATUS_INVALID_PARAMETER); + "Invalid stream index", GUAC_PROTOCOL_STATUS_CLIENT_BAD_REQUEST); return 0; } @@ -167,7 +167,7 @@ int __guac_handle_pipe(guac_client* client, guac_instruction* instruction) { dummy_stream.index = stream_index; guac_protocol_send_ack(client->socket, &dummy_stream, - "Invalid stream index", GUAC_PROTOCOL_STATUS_INVALID_PARAMETER); + "Invalid stream index", GUAC_PROTOCOL_STATUS_CLIENT_BAD_REQUEST); return 0; } @@ -226,7 +226,7 @@ int __guac_handle_blob(guac_client* client, guac_instruction* instruction) { dummy_stream.index = stream_index; guac_protocol_send_ack(client->socket, &dummy_stream, - "Invalid stream index", GUAC_PROTOCOL_STATUS_INVALID_PARAMETER); + "Invalid stream index", GUAC_PROTOCOL_STATUS_CLIENT_BAD_REQUEST); return 0; } @@ -239,7 +239,7 @@ int __guac_handle_blob(guac_client* client, guac_instruction* instruction) { dummy_stream.index = stream_index; guac_protocol_send_ack(client->socket, &dummy_stream, - "Invalid stream index", GUAC_PROTOCOL_STATUS_INVALID_PARAMETER); + "Invalid stream index", GUAC_PROTOCOL_STATUS_CLIENT_BAD_REQUEST); return 0; } @@ -273,7 +273,7 @@ int __guac_handle_end(guac_client* client, guac_instruction* instruction) { guac_protocol_send_ack(client->socket, &dummy_stream, "Invalid stream index", - GUAC_PROTOCOL_STATUS_INVALID_PARAMETER); + GUAC_PROTOCOL_STATUS_CLIENT_BAD_REQUEST); return 0; } diff --git a/src/protocols/rdp/client.c b/src/protocols/rdp/client.c index 814ddfe7..9cd936a9 100644 --- a/src/protocols/rdp/client.c +++ b/src/protocols/rdp/client.c @@ -320,7 +320,7 @@ BOOL rdp_freerdp_pre_connect(freerdp* instance) { if (freerdp_channels_pre_connect(channels, instance)) { guac_protocol_send_error(client->socket, "Error initializing RDP client channel manager", - GUAC_PROTOCOL_STATUS_INTERNAL_ERROR); + GUAC_PROTOCOL_STATUS_SERVER_ERROR); guac_socket_flush(client->socket); return FALSE; } @@ -339,7 +339,7 @@ BOOL rdp_freerdp_post_connect(freerdp* instance) { if (freerdp_channels_post_connect(channels, instance)) { guac_protocol_send_error(client->socket, "Error initializing RDP client channel manager", - GUAC_PROTOCOL_STATUS_INTERNAL_ERROR); + GUAC_PROTOCOL_STATUS_SERVER_ERROR); guac_socket_flush(client->socket); return FALSE; } @@ -444,7 +444,7 @@ int guac_client_init(guac_client* client, int argc, char** argv) { guac_protocol_send_error(client->socket, "Wrong argument count received.", - GUAC_PROTOCOL_STATUS_INVALID_PARAMETER); + GUAC_PROTOCOL_STATUS_CLIENT_BAD_REQUEST); guac_socket_flush(client->socket); guac_error = GUAC_STATUS_BAD_ARGUMENT; @@ -676,7 +676,7 @@ int guac_client_init(guac_client* client, int argc, char** argv) { guac_protocol_send_error(client->socket, "Error connecting to RDP server", - GUAC_PROTOCOL_STATUS_INTERNAL_ERROR); + GUAC_PROTOCOL_STATUS_SERVER_ERROR); guac_socket_flush(client->socket); guac_error = GUAC_STATUS_BAD_STATE; diff --git a/src/protocols/rdp/guac_handlers.c b/src/protocols/rdp/guac_handlers.c index 009fd5ff..fcc25e2f 100644 --- a/src/protocols/rdp/guac_handlers.c +++ b/src/protocols/rdp/guac_handlers.c @@ -528,7 +528,7 @@ int rdp_guac_client_blob_handler(guac_client* client, guac_stream* stream, default: guac_protocol_send_ack(client->socket, stream, "FAIL (BLOB NOT EXPECTED)", - GUAC_PROTOCOL_STATUS_INVALID_PARAMETER); + GUAC_PROTOCOL_STATUS_CLIENT_BAD_REQUEST); guac_socket_flush(client->socket); return 0; @@ -552,7 +552,7 @@ int rdp_guac_client_end_handler(guac_client* client, guac_stream* stream) { default: guac_protocol_send_ack(client->socket, stream, "FAIL (END NOT EXPECTED)", - GUAC_PROTOCOL_STATUS_INVALID_PARAMETER); + GUAC_PROTOCOL_STATUS_CLIENT_BAD_REQUEST); guac_socket_flush(client->socket); return 0; diff --git a/src/protocols/rdp/rdp_stream.c b/src/protocols/rdp/rdp_stream.c index 0569de8c..ad15e943 100644 --- a/src/protocols/rdp/rdp_stream.c +++ b/src/protocols/rdp/rdp_stream.c @@ -80,7 +80,7 @@ int guac_rdp_upload_file_handler(guac_client* client, guac_stream* stream, guac_rdp_fs* fs = ((rdp_guac_client_data*) client->data)->filesystem; if (fs == NULL) { guac_protocol_send_ack(client->socket, stream, "FAIL (NO FS)", - GUAC_PROTOCOL_STATUS_INTERNAL_ERROR); + GUAC_PROTOCOL_STATUS_SERVER_ERROR); guac_socket_flush(client->socket); return 0; } @@ -93,7 +93,7 @@ int guac_rdp_upload_file_handler(guac_client* client, guac_stream* stream, DISP_FILE_OVERWRITE_IF, 0); if (file_id < 0) { guac_protocol_send_ack(client->socket, stream, "FAIL (CANNOT OPEN)", - GUAC_PROTOCOL_STATUS_PERMISSION_DENIED); + GUAC_PROTOCOL_STATUS_CLIENT_FORBIDDEN); guac_socket_flush(client->socket); return 0; } @@ -124,7 +124,7 @@ int guac_rdp_svc_pipe_handler(guac_client* client, guac_stream* stream, "Requested non-existent pipe: \"%s\".", name); guac_protocol_send_ack(client->socket, stream, "FAIL (NO SUCH PIPE)", - GUAC_PROTOCOL_STATUS_INVALID_PARAMETER); + GUAC_PROTOCOL_STATUS_CLIENT_BAD_REQUEST); guac_socket_flush(client->socket); return 0; } @@ -153,7 +153,7 @@ int guac_rdp_upload_blob_handler(guac_client* client, guac_stream* stream, guac_rdp_fs* fs = ((rdp_guac_client_data*) client->data)->filesystem; if (fs == NULL) { guac_protocol_send_ack(client->socket, stream, "FAIL (NO FS)", - GUAC_PROTOCOL_STATUS_INTERNAL_ERROR); + GUAC_PROTOCOL_STATUS_SERVER_ERROR); guac_socket_flush(client->socket); return 0; } @@ -171,7 +171,7 @@ int guac_rdp_upload_blob_handler(guac_client* client, guac_stream* stream, if (bytes_written < 0) { guac_protocol_send_ack(client->socket, stream, "FAIL (BAD WRITE)", - GUAC_PROTOCOL_STATUS_PERMISSION_DENIED); + GUAC_PROTOCOL_STATUS_CLIENT_FORBIDDEN); guac_socket_flush(client->socket); return 0; } @@ -213,7 +213,7 @@ int guac_rdp_upload_end_handler(guac_client* client, guac_stream* stream) { guac_rdp_fs* fs = ((rdp_guac_client_data*) client->data)->filesystem; if (fs == NULL) { guac_protocol_send_ack(client->socket, stream, "FAIL (NO FS)", - GUAC_PROTOCOL_STATUS_INTERNAL_ERROR); + GUAC_PROTOCOL_STATUS_SERVER_ERROR); guac_socket_flush(client->socket); return 0; } @@ -240,7 +240,7 @@ int guac_rdp_download_ack_handler(guac_client* client, guac_stream* stream, guac_rdp_fs* fs = ((rdp_guac_client_data*) client->data)->filesystem; if (fs == NULL) { guac_protocol_send_ack(client->socket, stream, "FAIL (NO FS)", - GUAC_PROTOCOL_STATUS_INTERNAL_ERROR); + GUAC_PROTOCOL_STATUS_SERVER_ERROR); guac_socket_flush(client->socket); return 0; } diff --git a/src/protocols/ssh/guac_handlers.c b/src/protocols/ssh/guac_handlers.c index baf8e936..65dc1c7b 100644 --- a/src/protocols/ssh/guac_handlers.c +++ b/src/protocols/ssh/guac_handlers.c @@ -80,7 +80,7 @@ int ssh_guac_client_handle_messages(guac_client* client) { /* Notify on error */ if (bytes_read < 0) { guac_protocol_send_error(socket, "Error reading data.", - GUAC_PROTOCOL_STATUS_INTERNAL_ERROR); + GUAC_PROTOCOL_STATUS_SERVER_ERROR); guac_socket_flush(socket); return 1; } diff --git a/src/protocols/ssh/sftp.c b/src/protocols/ssh/sftp.c index 1f0accd9..d9682923 100644 --- a/src/protocols/ssh/sftp.c +++ b/src/protocols/ssh/sftp.c @@ -76,7 +76,7 @@ int guac_sftp_file_handler(guac_client* client, guac_stream* stream, if (!__ssh_guac_valid_filename(filename)) { guac_protocol_send_ack(client->socket, stream, "SFTP: Illegal filename", - GUAC_PROTOCOL_STATUS_INVALID_PARAMETER); + GUAC_PROTOCOL_STATUS_CLIENT_BAD_REQUEST); guac_socket_flush(client->socket); return 0; } @@ -104,7 +104,7 @@ int guac_sftp_file_handler(guac_client* client, guac_stream* stream, /* If path + filename exceeds max length, abort */ if (i == GUAC_SFTP_MAX_PATH) { guac_protocol_send_ack(client->socket, stream, "SFTP: Name too long", - GUAC_PROTOCOL_STATUS_INVALID_PARAMETER); + GUAC_PROTOCOL_STATUS_CLIENT_BAD_REQUEST); guac_socket_flush(client->socket); return 0; } @@ -127,7 +127,7 @@ int guac_sftp_file_handler(guac_client* client, guac_stream* stream, guac_client_log_error(client, "Unable to open file \"%s\": %s", fullpath, libssh2_sftp_last_error(client_data->sftp_session)); guac_protocol_send_ack(client->socket, stream, "SFTP: Open failed", - GUAC_PROTOCOL_STATUS_INTERNAL_ERROR); + GUAC_PROTOCOL_STATUS_SERVER_ERROR); guac_socket_flush(client->socket); } @@ -156,7 +156,7 @@ int guac_sftp_blob_handler(guac_client* client, guac_stream* stream, guac_client_log_error(client, "Unable to write to file: %s", libssh2_sftp_last_error(client_data->sftp_session)); guac_protocol_send_ack(client->socket, stream, "SFTP: Write failed", - GUAC_PROTOCOL_STATUS_INTERNAL_ERROR); + GUAC_PROTOCOL_STATUS_SERVER_ERROR); guac_socket_flush(client->socket); } @@ -178,7 +178,7 @@ int guac_sftp_end_handler(guac_client* client, guac_stream* stream) { else { guac_client_log_error(client, "Unable to close file"); guac_protocol_send_ack(client->socket, stream, "SFTP: Close failed", - GUAC_PROTOCOL_STATUS_INTERNAL_ERROR); + GUAC_PROTOCOL_STATUS_SERVER_ERROR); guac_socket_flush(client->socket); } diff --git a/src/protocols/ssh/ssh_client.c b/src/protocols/ssh/ssh_client.c index fe7453cb..e6a5c612 100644 --- a/src/protocols/ssh/ssh_client.c +++ b/src/protocols/ssh/ssh_client.c @@ -348,7 +348,7 @@ void* ssh_client_thread(void* data) { client_data->session = __guac_ssh_create_session(client, &socket_fd); if (client_data->session == NULL) { guac_protocol_send_error(socket, "Unable to create SSH session.", - GUAC_PROTOCOL_STATUS_INTERNAL_ERROR); + GUAC_PROTOCOL_STATUS_SERVER_ERROR); guac_socket_flush(socket); return NULL; } @@ -358,7 +358,7 @@ void* ssh_client_thread(void* data) { libssh2_channel_open_session(client_data->session); if (client_data->term_channel == NULL) { guac_protocol_send_error(socket, "Unable to open channel.", - GUAC_PROTOCOL_STATUS_INTERNAL_ERROR); + GUAC_PROTOCOL_STATUS_SERVER_ERROR); guac_socket_flush(socket); return NULL; } @@ -391,7 +391,7 @@ void* ssh_client_thread(void* data) { libssh2_sftp_init(client_data->sftp_ssh_session); if (client_data->sftp_session == NULL) { guac_protocol_send_error(socket, "Unable to start SFTP session..", - GUAC_PROTOCOL_STATUS_INTERNAL_ERROR); + GUAC_PROTOCOL_STATUS_SERVER_ERROR); guac_socket_flush(socket); return NULL; } @@ -412,7 +412,7 @@ void* ssh_client_thread(void* data) { client_data->term->term_width, client_data->term->term_height, 0, 0)) { guac_protocol_send_error(socket, "Unable to allocate PTY for channel.", - GUAC_PROTOCOL_STATUS_INTERNAL_ERROR); + GUAC_PROTOCOL_STATUS_SERVER_ERROR); guac_socket_flush(socket); return NULL; } @@ -420,7 +420,7 @@ void* ssh_client_thread(void* data) { /* Request shell */ if (libssh2_channel_shell(client_data->term_channel)) { guac_protocol_send_error(socket, "Unable to associate shell with PTY.", - GUAC_PROTOCOL_STATUS_INTERNAL_ERROR); + GUAC_PROTOCOL_STATUS_SERVER_ERROR); guac_socket_flush(socket); return NULL; } diff --git a/src/protocols/vnc/client.c b/src/protocols/vnc/client.c index 5d15b51b..69c852a6 100644 --- a/src/protocols/vnc/client.c +++ b/src/protocols/vnc/client.c @@ -207,7 +207,7 @@ int guac_client_init(guac_client* client, int argc, char** argv) { if (argc != VNC_ARGS_COUNT) { guac_protocol_send_error(client->socket, "Wrong argument count received.", - GUAC_PROTOCOL_STATUS_INVALID_PARAMETER); + GUAC_PROTOCOL_STATUS_CLIENT_BAD_REQUEST); guac_socket_flush(client->socket); return 1; } @@ -293,7 +293,7 @@ int guac_client_init(guac_client* client, int argc, char** argv) { if (!rfb_client) { guac_protocol_send_error(client->socket, "Error initializing VNC client", - GUAC_PROTOCOL_STATUS_INTERNAL_ERROR); + GUAC_PROTOCOL_STATUS_SERVER_ERROR); guac_socket_flush(client->socket); return 1; }