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;
  

Reply via email to