diff --git a/configure.ac b/configure.ac index dba5f715..24050b9e 100644 --- a/configure.ac +++ b/configure.ac @@ -722,6 +722,21 @@ then fi +# Support for receiving unannounced orders from the RDP server +if test "x${have_freerdp2}" = "xyes" +then + AC_CHECK_MEMBERS([rdpSettings.AllowUnanouncedOrdersFromServer],, + [AC_MSG_WARN([ + -------------------------------------------- + This version of FreeRDP does not support relaxed order checks. RDP servers + that send orders that the client did not announce as supported (such as the + VirtualBox RDP server) will likely not be usable. + + See: https://issues.apache.org/jira/browse/GUACAMOLE-962 + --------------------------------------------])], + [[#include ]]) +fi + # Restore CPPFLAGS, removing FreeRDP-specific options needed for testing CPPFLAGS="$OLDCPPFLAGS" diff --git a/src/protocols/rdp/settings.c b/src/protocols/rdp/settings.c index fe2cf672..864e6427 100644 --- a/src/protocols/rdp/settings.c +++ b/src/protocols/rdp/settings.c @@ -1356,5 +1356,10 @@ void guac_rdp_push_settings(guac_client* client, rdp_settings->OrderSupport[NEG_FAST_INDEX_INDEX] = !guac_settings->disable_glyph_caching; rdp_settings->OrderSupport[NEG_FAST_GLYPH_INDEX] = !guac_settings->disable_glyph_caching; +#ifdef HAVE_RDPSETTINGS_ALLOWUNANOUNCEDORDERSFROMSERVER + /* Do not consider server use of unannounced orders to be a fatal error */ + rdp_settings->AllowUnanouncedOrdersFromServer = TRUE; +#endif + }