You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@guacamole.apache.org by vn...@apache.org on 2020/01/14 21:37:14 UTC
[guacamole-server] 01/01: Merge staging/1.1.0 changes back to
master.
This is an automated email from the ASF dual-hosted git repository.
vnick pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/guacamole-server.git
commit 956c5f293e13c6916ae00431a9146c203e8b5912
Merge: c97b8f2 3e22526
Author: Nick Couchman <vn...@apache.org>
AuthorDate: Tue Jan 14 16:27:09 2020 -0500
Merge staging/1.1.0 changes back to master.
Dockerfile | 7 +-
configure.ac | 566 +++----------------
src/common/surface.c | 29 +-
src/guacd-docker/bin/link-freerdp-plugins.sh | 2 +-
src/protocols/rdp/.gitignore | 1 +
src/protocols/rdp/Makefile.am | 387 +++++--------
src/protocols/rdp/{rdp_bitmap.c => bitmap.c} | 132 +----
src/protocols/rdp/{rdp_bitmap.h => bitmap.h} | 100 +---
.../audio-input/audio-buffer.c} | 170 +-----
.../audio-input/audio-buffer.h} | 40 +-
.../rdp/channels/audio-input/audio-input.c | 195 +++++++
.../audio-input/audio-input.h} | 42 +-
src/protocols/rdp/channels/cliprdr.c | 620 +++++++++++++++++++++
src/protocols/rdp/channels/cliprdr.h | 146 +++++
src/protocols/rdp/channels/common-svc.c | 101 ++++
src/protocols/rdp/channels/common-svc.h | 229 ++++++++
src/protocols/rdp/{rdp_disp.c => channels/disp.c} | 76 ++-
src/protocols/rdp/{rdp_disp.h => channels/disp.h} | 74 ++-
src/protocols/rdp/channels/pipe-svc.c | 230 ++++++++
src/protocols/rdp/channels/pipe-svc.h | 188 +++++++
src/protocols/rdp/channels/rail.c | 211 +++++++
.../{compat/client-cliprdr.h => channels/rail.h} | 26 +-
.../rdpdr/rdpdr-fs-messages-dir-info.c} | 89 +--
.../rdpdr/rdpdr-fs-messages-dir-info.h} | 56 +-
.../rdpdr/rdpdr-fs-messages-file-info.c} | 169 +++---
.../rdpdr/rdpdr-fs-messages-file-info.h} | 72 ++-
.../rdpdr/rdpdr-fs-messages-vol-info.c} | 92 ++-
.../rdpdr/rdpdr-fs-messages-vol-info.h} | 30 +-
.../rdpdr/rdpdr-fs-messages.c} | 271 +++++----
.../rdpdr/rdpdr-fs-messages.h} | 53 +-
.../rdpdr/rdpdr-fs.c} | 73 ++-
.../rdpdr/rdpdr-fs.h} | 30 +-
src/protocols/rdp/channels/rdpdr/rdpdr-messages.c | 349 ++++++++++++
src/protocols/rdp/channels/rdpdr/rdpdr-messages.h | 136 +++++
.../rdpdr/rdpdr-printer.c} | 87 ++-
src/protocols/rdp/channels/rdpdr/rdpdr-printer.h | 81 +++
src/protocols/rdp/channels/rdpdr/rdpdr.c | 184 ++++++
src/protocols/rdp/channels/rdpdr/rdpdr.h | 250 +++++++++
.../rdpsnd/rdpsnd-messages.c} | 71 +--
.../rdpsnd/rdpsnd-messages.h} | 111 +---
src/protocols/rdp/channels/rdpsnd/rdpsnd.c | 105 ++++
.../rdpsnd_service.h => channels/rdpsnd/rdpsnd.h} | 67 +--
src/protocols/rdp/client.c | 41 +-
src/protocols/rdp/client.h | 2 -
src/protocols/rdp/color.c | 76 +++
src/protocols/rdp/{rdp_color.h => color.h} | 25 +-
src/protocols/rdp/compat/rail.h | 39 --
src/protocols/rdp/compat/winpr-stream.c | 47 --
src/protocols/rdp/compat/winpr-stream.h | 71 ---
src/protocols/rdp/decompose.c | 1 -
src/protocols/rdp/doc/svc-example/.gitignore | 2 +
.../Makefile.am => doc/svc-example/Makefile} | 46 +-
src/protocols/rdp/doc/svc-example/README.md | 169 ++++++
src/protocols/rdp/doc/svc-example/svc-example.c | 71 +++
src/protocols/rdp/download.c | 222 ++++++++
src/protocols/rdp/download.h | 69 +++
src/protocols/rdp/dvc.c | 183 ------
src/protocols/rdp/dvc.h | 138 -----
src/protocols/rdp/error.c | 2 -
src/protocols/rdp/{rdp_fs.c => fs.c} | 67 ++-
src/protocols/rdp/{rdp_fs.h => fs.h} | 108 +---
src/protocols/rdp/{rdp_gdi.c => gdi.c} | 195 +------
src/protocols/rdp/{rdp_gdi.h => gdi.h} | 83 ++-
src/protocols/rdp/{rdp_glyph.c => glyph.c} | 51 +-
src/protocols/rdp/{rdp_glyph.h => glyph.h} | 73 ++-
src/protocols/rdp/guac_rdpdr/rdpdr_messages.c | 286 ----------
src/protocols/rdp/guac_rdpdr/rdpdr_messages.h | 221 --------
src/protocols/rdp/guac_rdpdr/rdpdr_printer.h | 48 --
src/protocols/rdp/guac_rdpdr/rdpdr_service.c | 313 -----------
src/protocols/rdp/guac_rdpdr/rdpdr_service.h | 184 ------
src/protocols/rdp/guac_rdpsnd/rdpsnd_service.c | 145 -----
src/protocols/rdp/guac_svc/svc_service.c | 150 -----
src/protocols/rdp/guac_svc/svc_service.h | 77 ---
src/protocols/rdp/input.c | 20 +-
src/protocols/rdp/keyboard.c | 30 +-
src/protocols/rdp/keyboard.h | 6 +-
src/protocols/rdp/{rdp_keymap.c => keymap.c} | 4 +-
src/protocols/rdp/{rdp_keymap.h => keymap.h} | 11 +-
src/protocols/rdp/keymaps/generate.pl | 7 +-
src/protocols/rdp/log.c | 74 +++
src/protocols/rdp/{compat/winpr-wtypes.h => log.h} | 26 +-
src/protocols/rdp/ls.c | 122 ++++
src/protocols/rdp/{sftp.h => ls.h} | 60 +-
src/protocols/rdp/plugins/channels.c | 142 +++++
src/protocols/rdp/plugins/channels.h | 207 +++++++
.../rdp/plugins/generate-entry-wrappers.pl | 77 +++
.../rdp/plugins/guac-common-svc/guac-common-svc.c | 306 ++++++++++
.../guacai/guacai-messages.c} | 32 +-
.../guacai/guacai-messages.h} | 21 +-
.../ai_service.c => plugins/guacai/guacai.c} | 90 +--
.../ai_service.h => plugins/guacai/guacai.h} | 8 +-
.../rdp/{ptr_string.c => plugins/ptr-string.c} | 6 +-
.../rdp/{ptr_string.h => plugins/ptr-string.h} | 6 +-
src/protocols/rdp/{rdp_pointer.c => pointer.c} | 61 +-
src/protocols/rdp/{rdp_pointer.h => pointer.h} | 28 +-
src/protocols/rdp/{rdp_print_job.c => print-job.c} | 4 +-
src/protocols/rdp/{rdp_print_job.h => print-job.h} | 5 +-
src/protocols/rdp/rdp.c | 573 ++++---------------
src/protocols/rdp/rdp.h | 49 +-
src/protocols/rdp/rdp_cliprdr.c | 274 ---------
src/protocols/rdp/rdp_cliprdr.h | 120 ----
src/protocols/rdp/rdp_color.c | 62 ---
src/protocols/rdp/rdp_rail.c | 122 ----
src/protocols/rdp/rdp_rail.h | 58 --
src/protocols/rdp/rdp_status.h | 66 ---
src/protocols/rdp/rdp_stream.c | 594 --------------------
src/protocols/rdp/rdp_stream.h | 226 --------
src/protocols/rdp/rdp_svc.c | 176 ------
src/protocols/rdp/rdp_svc.h | 168 ------
src/protocols/rdp/{rdp_settings.c => settings.c} | 281 ++--------
src/protocols/rdp/{rdp_settings.h => settings.h} | 41 +-
src/protocols/rdp/sftp.c | 3 -
src/protocols/rdp/sftp.h | 2 -
src/protocols/rdp/tests/Makefile.am | 1 +
src/protocols/rdp/tests/fs/basename.c | 59 ++
src/protocols/rdp/tests/fs/normalize_path.c | 2 +-
src/protocols/rdp/unicode.c | 4 +-
src/protocols/rdp/upload.c | 236 ++++++++
src/protocols/rdp/upload.h | 72 +++
src/protocols/rdp/user.c | 21 +-
120 files changed, 6582 insertions(+), 7134 deletions(-)
diff --cc configure.ac
index 7fc7d33,eb182fe..5b0fbe8
--- a/configure.ac
+++ b/configure.ac
@@@ -528,39 -528,10 +528,37 @@@ the
fi
#
+# TLS Locking Support within libVNCServer
+#
+
+if test "x${have_libvncserver}" = "xyes"
+then
+
+ have_vnc_tls_locking=yes
+ AC_CHECK_MEMBERS([rfbClient.LockWriteToTLS, rfbClient.UnlockWriteToTLS],
+ [], [have_vnc_tls_locking=no],
+ [[#include <rfb/rfbclient.h>]])
+
+ if test "x${have_vnc_tls_locking}" = "xno"
+ then
+ AC_MSG_WARN([
+ --------------------------------------------
+ This version of libvncclient lacks support
+ for TLS locking. VNC connections that use
+ TLS may experience instability as documented
+ in GUACAMOLE-414])
+ else
+ AC_DEFINE([ENABLE_VNC_TLS_LOCKING],,
+ [Whether support for TLS locking within VNC is enabled.])
+ fi
+
+fi
+
+#
- # FreeRDP
+ # FreeRDP 2 (libfreerdp2, libfreerdp-client2, and libwinpr2)
#
- have_freerdp=disabled
- RDP_LIBS=
- WINPR_LIBS=
+ have_freerdp2=disabled
AC_ARG_WITH([rdp],
[AS_HELP_STRING([--with-rdp],
[support RDP @<:@default=check@:>@])],
diff --cc src/protocols/rdp/rdp.c
index d0df053,5cf651a..6d8381d
--- a/src/protocols/rdp/rdp.c
+++ b/src/protocols/rdp/rdp.c
@@@ -237,16 -97,11 +97,15 @@@ BOOL rdp_freerdp_pre_connect(freerdp* i
/* Load "AUDIO_INPUT" plugin for audio input*/
if (settings->enable_audio_input) {
rdp_client->audio_input = guac_rdp_audio_buffer_alloc();
- guac_rdp_audio_load_plugin(instance->context, dvc_list);
+ guac_rdp_audio_load_plugin(instance->context);
}
- /* Load clipboard plugin if not disabled */
- if (!(settings->disable_copy && settings->disable_paste)
- && freerdp_channels_load_plugin(channels, instance->settings,
- "cliprdr", NULL)) {
- /* Load "cliprdr" plugin for clipboard support */
- guac_rdp_clipboard_load_plugin(rdp_client->clipboard, context);
++ /* Load "cliprdr" service if not disabled */
++ if (!(settings->disable_copy && settings->disable_paste))
++ guac_rdp_clipboard_load_plugin(rdp_client->clipboard, context);
++ else
+ guac_client_log(client, GUAC_LOG_WARNING,
- "Failed to load cliprdr plugin. Clipboard will not work.");
- }
++ "Copy and paste are both disabled. Clipboard plugin will not be loaded.");
/* If RDPSND/RDPDR required, load them */
if (settings->printing_enabled
diff --cc src/protocols/rdp/settings.c
index 11cc861,bac74ff..fe2cf67
--- a/src/protocols/rdp/settings.c
+++ b/src/protocols/rdp/settings.c
@@@ -113,14 -108,9 +108,11 @@@ const char* GUAC_RDP_CLIENT_ARGS[] =
"gateway-domain",
"gateway-username",
"gateway-password",
- #endif
- #ifdef HAVE_FREERDP_LOAD_BALANCER_SUPPORT
"load-balance-info",
- #endif
+ "disable-copy",
+ "disable-paste",
NULL
};
@@@ -546,22 -534,7 +536,21 @@@ enum RDP_ARGS_IDX
* the connection broker, if a connection broker is being used.
*/
IDX_LOAD_BALANCE_INFO,
- #endif
+ /**
+ * Whether outbound clipboard access should be blocked. If set to "true",
+ * it will not be possible to copy data from the remote desktop to the
+ * client using the clipboard. By default, clipboard access is not blocked.
+ */
+ IDX_DISABLE_COPY,
+
+ /**
+ * Whether inbound clipboard access should be blocked. If set to "true", it
+ * will not be possible to paste data from the client to the remote desktop
+ * using the clipboard. By default, clipboard access is not blocked.
+ */
+ IDX_DISABLE_PASTE,
+
RDP_ARGS_COUNT
};
@@@ -1022,18 -996,7 +1012,17 @@@ guac_rdp_settings* guac_rdp_parse_args(
settings->load_balance_info =
guac_user_parse_args_string(user, GUAC_RDP_CLIENT_ARGS, argv,
IDX_LOAD_BALANCE_INFO, NULL);
- #endif
+ /* Parse clipboard copy disable flag */
+ settings->disable_copy =
+ guac_user_parse_args_boolean(user, GUAC_RDP_CLIENT_ARGS, argv,
+ IDX_DISABLE_COPY, 0);
+
+ /* Parse clipboard paste disable flag */
+ settings->disable_paste =
+ guac_user_parse_args_boolean(user, GUAC_RDP_CLIENT_ARGS, argv,
+ IDX_DISABLE_PASTE, 0);
+
/* Success */
return settings;