diff --git a/src/protocols/kubernetes/user.c b/src/protocols/kubernetes/user.c index f90260e7..f4e9eb44 100644 --- a/src/protocols/kubernetes/user.c +++ b/src/protocols/kubernetes/user.c @@ -79,10 +79,13 @@ int guac_kubernetes_user_join_handler(guac_user* user, int argc, char** argv) { /* Only handle events if not read-only */ if (!settings->read_only) { - /* General mouse/keyboard/clipboard events */ - user->key_handler = guac_kubernetes_user_key_handler; - user->mouse_handler = guac_kubernetes_user_mouse_handler; - user->clipboard_handler = guac_kubernetes_clipboard_handler; + /* General mouse/keyboard events */ + user->key_handler = guac_kubernetes_user_key_handler; + user->mouse_handler = guac_kubernetes_user_mouse_handler; + + /* Inbound (client to server) clipboard transfer */ + if (!settings->disable_paste) + user->clipboard_handler = guac_kubernetes_clipboard_handler; /* STDIN redirection */ user->pipe_handler = guac_kubernetes_pipe_handler; diff --git a/src/protocols/rdp/user.c b/src/protocols/rdp/user.c index 6aa71ae9..025848aa 100644 --- a/src/protocols/rdp/user.c +++ b/src/protocols/rdp/user.c @@ -97,10 +97,13 @@ int guac_rdp_user_join_handler(guac_user* user, int argc, char** argv) { /* Only handle events if not read-only */ if (!settings->read_only) { - /* General mouse/keyboard/clipboard events */ - user->mouse_handler = guac_rdp_user_mouse_handler; - user->key_handler = guac_rdp_user_key_handler; - user->clipboard_handler = guac_rdp_clipboard_handler; + /* General mouse/keyboard events */ + user->mouse_handler = guac_rdp_user_mouse_handler; + user->key_handler = guac_rdp_user_key_handler; + + /* Inbound (client to server) clipboard transfer */ + if (!settings->disable_paste) + user->clipboard_handler = guac_rdp_clipboard_handler; /* Display size change events */ user->size_handler = guac_rdp_user_size_handler; diff --git a/src/protocols/ssh/user.c b/src/protocols/ssh/user.c index 97ed87c6..76a2a963 100644 --- a/src/protocols/ssh/user.c +++ b/src/protocols/ssh/user.c @@ -80,10 +80,13 @@ int guac_ssh_user_join_handler(guac_user* user, int argc, char** argv) { /* Only handle events if not read-only */ if (!settings->read_only) { - /* General mouse/keyboard/clipboard events */ - user->key_handler = guac_ssh_user_key_handler; - user->mouse_handler = guac_ssh_user_mouse_handler; - user->clipboard_handler = guac_ssh_clipboard_handler; + /* General mouse/keyboard events */ + user->key_handler = guac_ssh_user_key_handler; + user->mouse_handler = guac_ssh_user_mouse_handler; + + /* Inbound (client to server) clipboard transfer */ + if (!settings->disable_paste) + user->clipboard_handler = guac_ssh_clipboard_handler; /* STDIN redirection */ user->pipe_handler = guac_ssh_pipe_handler; diff --git a/src/protocols/telnet/user.c b/src/protocols/telnet/user.c index 44ef9b5e..5c15283b 100644 --- a/src/protocols/telnet/user.c +++ b/src/protocols/telnet/user.c @@ -79,10 +79,13 @@ int guac_telnet_user_join_handler(guac_user* user, int argc, char** argv) { /* Only handle events if not read-only */ if (!settings->read_only) { - /* General mouse/keyboard/clipboard events */ - user->key_handler = guac_telnet_user_key_handler; - user->mouse_handler = guac_telnet_user_mouse_handler; - user->clipboard_handler = guac_telnet_clipboard_handler; + /* General mouse/keyboard events */ + user->key_handler = guac_telnet_user_key_handler; + user->mouse_handler = guac_telnet_user_mouse_handler; + + /* Inbound (client to server) clipboard transfer */ + if (!settings->disable_paste) + user->clipboard_handler = guac_telnet_clipboard_handler; /* STDIN redirection */ user->pipe_handler = guac_telnet_pipe_handler; diff --git a/src/protocols/vnc/user.c b/src/protocols/vnc/user.c index da3b843f..0dee5043 100644 --- a/src/protocols/vnc/user.c +++ b/src/protocols/vnc/user.c @@ -91,10 +91,13 @@ int guac_vnc_user_join_handler(guac_user* user, int argc, char** argv) { /* Only handle events if not read-only */ if (!settings->read_only) { - /* General mouse/keyboard/clipboard events */ - user->mouse_handler = guac_vnc_user_mouse_handler; - user->key_handler = guac_vnc_user_key_handler; - user->clipboard_handler = guac_vnc_clipboard_handler; + /* General mouse/keyboard events */ + user->mouse_handler = guac_vnc_user_mouse_handler; + user->key_handler = guac_vnc_user_key_handler; + + /* Inbound (client to server) clipboard transfer */ + if (!settings->disable_paste) + user->clipboard_handler = guac_vnc_clipboard_handler; #ifdef ENABLE_COMMON_SSH /* Set generic (non-filesystem) file upload handler */