From 18407fdc377c6686932b5bbd3a393e78e63922b8 Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Thu, 10 Apr 2014 13:40:22 -0700 Subject: [PATCH] GUAC-614: Migrate VNC to simpler stream API. --- src/protocols/vnc/client.c | 5 ++--- src/protocols/vnc/clipboard.c | 4 ++++ src/protocols/vnc/guac_handlers.c | 12 ------------ src/protocols/vnc/guac_handlers.h | 3 --- 4 files changed, 6 insertions(+), 18 deletions(-) diff --git a/src/protocols/vnc/client.c b/src/protocols/vnc/client.c index 1fe61a1c..41a317ca 100644 --- a/src/protocols/vnc/client.c +++ b/src/protocols/vnc/client.c @@ -23,6 +23,7 @@ #include "config.h" #include "client.h" +#include "clipboard.h" #include "guac_clipboard.h" #include "guac_dot_cursor.h" #include "guac_handlers.h" @@ -350,9 +351,7 @@ int guac_client_init(guac_client* client, int argc, char** argv) { /* Only handle mouse/keyboard/clipboard if not read-only */ client->mouse_handler = vnc_guac_client_mouse_handler; client->key_handler = vnc_guac_client_key_handler; - client->clipboard_handler = vnc_guac_client_clipboard_handler; - client->blob_handler = vnc_guac_client_blob_handler; - client->end_handler = vnc_guac_client_end_handler; + client->clipboard_handler = guac_vnc_clipboard_handler; /* If not read-only but cursor is remote, set a dot cursor */ if (guac_client_data->remote_cursor) diff --git a/src/protocols/vnc/clipboard.c b/src/protocols/vnc/clipboard.c index 02abf202..47b36f2a 100644 --- a/src/protocols/vnc/clipboard.c +++ b/src/protocols/vnc/clipboard.c @@ -33,6 +33,10 @@ int guac_vnc_clipboard_handler(guac_client* client, guac_stream* stream, vnc_guac_client_data* client_data = (vnc_guac_client_data*) client->data; guac_common_clipboard_reset(client_data->clipboard, mimetype); + /* Set handlers for clipboard stream */ + stream->blob_handler = guac_vnc_clipboard_blob_handler; + stream->end_handler = guac_vnc_clipboard_end_handler; + return 0; } diff --git a/src/protocols/vnc/guac_handlers.c b/src/protocols/vnc/guac_handlers.c index 234df02c..f1bdd115 100644 --- a/src/protocols/vnc/guac_handlers.c +++ b/src/protocols/vnc/guac_handlers.c @@ -98,18 +98,6 @@ int vnc_guac_client_key_handler(guac_client* client, int keysym, int pressed) { return 0; } -int vnc_guac_client_clipboard_handler(guac_client* client, guac_stream* stream, char* mimetype) { - return guac_vnc_clipboard_handler(client, stream, mimetype); -} - -int vnc_guac_client_blob_handler(guac_client* client, guac_stream* stream, void* data, int length) { - return guac_vnc_clipboard_blob_handler(client, stream, data, length); -} - -int vnc_guac_client_end_handler(guac_client* client, guac_stream* stream) { - return guac_vnc_clipboard_end_handler(client, stream); -} - int vnc_guac_client_free_handler(guac_client* client) { vnc_guac_client_data* guac_client_data = (vnc_guac_client_data*) client->data; diff --git a/src/protocols/vnc/guac_handlers.h b/src/protocols/vnc/guac_handlers.h index ee99cdc8..64879410 100644 --- a/src/protocols/vnc/guac_handlers.h +++ b/src/protocols/vnc/guac_handlers.h @@ -31,9 +31,6 @@ int vnc_guac_client_handle_messages(guac_client* client); int vnc_guac_client_mouse_handler(guac_client* client, int x, int y, int mask); int vnc_guac_client_key_handler(guac_client* client, int keysym, int pressed); -int vnc_guac_client_clipboard_handler(guac_client* client, guac_stream* stream, char* mimetype); -int vnc_guac_client_blob_handler(guac_client* client, guac_stream* stream, void* data, int length); -int vnc_guac_client_end_handler(guac_client* client, guac_stream* stream); int vnc_guac_client_free_handler(guac_client* client); #endif