GUACAMOLE-381: Disable outbound transfers from terminal protocols if "disable-copy" is set.
This commit is contained in:
parent
254615509a
commit
228cea4af1
@ -237,7 +237,7 @@ void* guac_kubernetes_client_thread(void* data) {
|
|||||||
|
|
||||||
/* Create terminal */
|
/* Create terminal */
|
||||||
kubernetes_client->term = guac_terminal_create(client,
|
kubernetes_client->term = guac_terminal_create(client,
|
||||||
kubernetes_client->clipboard,
|
kubernetes_client->clipboard, settings->disable_copy,
|
||||||
settings->max_scrollback, settings->font_name, settings->font_size,
|
settings->max_scrollback, settings->font_name, settings->font_size,
|
||||||
settings->resolution, settings->width, settings->height,
|
settings->resolution, settings->width, settings->height,
|
||||||
settings->color_scheme, settings->backspace);
|
settings->color_scheme, settings->backspace);
|
||||||
|
@ -207,9 +207,10 @@ void* ssh_client_thread(void* data) {
|
|||||||
|
|
||||||
/* Create terminal */
|
/* Create terminal */
|
||||||
ssh_client->term = guac_terminal_create(client, ssh_client->clipboard,
|
ssh_client->term = guac_terminal_create(client, ssh_client->clipboard,
|
||||||
settings->max_scrollback, settings->font_name, settings->font_size,
|
settings->disable_copy, settings->max_scrollback,
|
||||||
settings->resolution, settings->width, settings->height,
|
settings->font_name, settings->font_size, settings->resolution,
|
||||||
settings->color_scheme, settings->backspace);
|
settings->width, settings->height, settings->color_scheme,
|
||||||
|
settings->backspace);
|
||||||
|
|
||||||
/* Fail if terminal init failed */
|
/* Fail if terminal init failed */
|
||||||
if (ssh_client->term == NULL) {
|
if (ssh_client->term == NULL) {
|
||||||
|
@ -568,7 +568,7 @@ void* guac_telnet_client_thread(void* data) {
|
|||||||
|
|
||||||
/* Create terminal */
|
/* Create terminal */
|
||||||
telnet_client->term = guac_terminal_create(client,
|
telnet_client->term = guac_terminal_create(client,
|
||||||
telnet_client->clipboard,
|
telnet_client->clipboard, settings->disable_copy,
|
||||||
settings->max_scrollback, settings->font_name, settings->font_size,
|
settings->max_scrollback, settings->font_name, settings->font_size,
|
||||||
settings->resolution, settings->width, settings->height,
|
settings->resolution, settings->width, settings->height,
|
||||||
settings->color_scheme, settings->backspace);
|
settings->color_scheme, settings->backspace);
|
||||||
|
@ -375,8 +375,10 @@ void guac_terminal_select_end(guac_terminal* terminal) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Send data */
|
/* Send data */
|
||||||
guac_common_clipboard_send(terminal->clipboard, client);
|
if (!terminal->disable_copy) {
|
||||||
guac_socket_flush(socket);
|
guac_common_clipboard_send(terminal->clipboard, client);
|
||||||
|
guac_socket_flush(socket);
|
||||||
|
}
|
||||||
|
|
||||||
guac_terminal_notify(terminal);
|
guac_terminal_notify(terminal);
|
||||||
|
|
||||||
|
@ -306,8 +306,8 @@ void* guac_terminal_thread(void* data) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
guac_terminal* guac_terminal_create(guac_client* client,
|
guac_terminal* guac_terminal_create(guac_client* client,
|
||||||
guac_common_clipboard* clipboard, int max_scrollback,
|
guac_common_clipboard* clipboard, bool disable_copy,
|
||||||
const char* font_name, int font_size, int dpi,
|
int max_scrollback, const char* font_name, int font_size, int dpi,
|
||||||
int width, int height, const char* color_scheme,
|
int width, int height, const char* color_scheme,
|
||||||
const int backspace) {
|
const int backspace) {
|
||||||
|
|
||||||
@ -404,6 +404,7 @@ guac_terminal* guac_terminal_create(guac_client* client,
|
|||||||
term->current_attributes = default_char.attributes;
|
term->current_attributes = default_char.attributes;
|
||||||
term->default_char = default_char;
|
term->default_char = default_char;
|
||||||
term->clipboard = clipboard;
|
term->clipboard = clipboard;
|
||||||
|
term->disable_copy = disable_copy;
|
||||||
|
|
||||||
/* Calculate character size */
|
/* Calculate character size */
|
||||||
int rows = height / term->display->char_height;
|
int rows = height / term->display->char_height;
|
||||||
|
@ -511,6 +511,14 @@ struct guac_terminal {
|
|||||||
*/
|
*/
|
||||||
char backspace;
|
char backspace;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether copying from the terminal clipboard should be blocked. If set,
|
||||||
|
* the contents of the terminal can still be copied, but will be usable
|
||||||
|
* only within the terminal itself. The clipboard contents will not be
|
||||||
|
* automatically streamed to the client.
|
||||||
|
*/
|
||||||
|
bool disable_copy;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -533,6 +541,12 @@ struct guac_terminal {
|
|||||||
* clipboard instructions. This clipboard will not be automatically
|
* clipboard instructions. This clipboard will not be automatically
|
||||||
* freed when this terminal is freed.
|
* freed when this terminal is freed.
|
||||||
*
|
*
|
||||||
|
* @param disable_copy
|
||||||
|
* Whether copying from the terminal clipboard should be blocked. If set,
|
||||||
|
* the contents of the terminal can still be copied, but will be usable
|
||||||
|
* only within the terminal itself. The clipboard contents will not be
|
||||||
|
* automatically streamed to the client.
|
||||||
|
*
|
||||||
* @param max_scrollback
|
* @param max_scrollback
|
||||||
* The maximum number of rows to allow within the scrollback buffer. The
|
* The maximum number of rows to allow within the scrollback buffer. The
|
||||||
* user may still alter the size of the scrollback buffer using terminal
|
* user may still alter the size of the scrollback buffer using terminal
|
||||||
@ -575,8 +589,8 @@ struct guac_terminal {
|
|||||||
* which renders all text to the given client.
|
* which renders all text to the given client.
|
||||||
*/
|
*/
|
||||||
guac_terminal* guac_terminal_create(guac_client* client,
|
guac_terminal* guac_terminal_create(guac_client* client,
|
||||||
guac_common_clipboard* clipboard, int max_scrollback,
|
guac_common_clipboard* clipboard, bool disable_copy,
|
||||||
const char* font_name, int font_size, int dpi,
|
int max_scrollback, const char* font_name, int font_size, int dpi,
|
||||||
int width, int height, const char* color_scheme,
|
int width, int height, const char* color_scheme,
|
||||||
const int backspace);
|
const int backspace);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user