[PATCH] Fix compilation with FreeRdp 1.1 and master v2
Hardening
rdp.effort at gmail.com
Fri Jan 10 02:33:06 PST 2014
The API to use remoteFx encoding has changed between master and stable 1.1
branch. This patch should fix compilation for both.
This new version adds checks for the freerdp/version.h file
---
configure.ac | 5 +++++
src/compositor-rdp.c | 12 ++++++++++++
2 files changed, 17 insertions(+)
diff --git a/configure.ac b/configure.ac
index 571bf60..d66dbec 100644
--- a/configure.ac
+++ b/configure.ac
@@ -204,6 +204,11 @@ AM_CONDITIONAL([ENABLE_RDP_COMPOSITOR],
if test x$enable_rdp_compositor = xyes; then
AC_DEFINE([BUILD_RDP_COMPOSITOR], [1], [Build the RDP compositor])
PKG_CHECK_MODULES(RDP_COMPOSITOR, [freerdp >= 1.1.0])
+
+ SAVED_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $RDP_COMPOSITOR_CFLAGS"
+ AC_CHECK_HEADERS([freerdp/version.h])
+ CPPFLAGS="$SAVED_CPPFLAGS"
fi
AC_ARG_WITH(cairo,
diff --git a/src/compositor-rdp.c b/src/compositor-rdp.c
index b9c36cf..7f6ce28 100644
--- a/src/compositor-rdp.c
+++ b/src/compositor-rdp.c
@@ -27,6 +27,14 @@
#include <errno.h>
#include <linux/input.h>
+#if HAVE_FREERDP_VERSION_H
+#include <freerdp/version.h>
+#else
+// assume it's a early 1.1 version
+#define FREERDP_MAJOR 1
+#define FREERDP_MINOR 1
+#endif
+
#include <freerdp/freerdp.h>
#include <freerdp/listener.h>
#include <freerdp/update.h>
@@ -571,7 +579,11 @@ rdp_peer_context_new(freerdp_peer* client, RdpPeerContext* context)
context->item.peer = client;
context->item.flags = RDP_PEER_OUTPUT_ENABLED;
+#if FREERDP_VERSION_MAJOR == 1 && FREERDP_VERSION_MINOR == 1
context->rfx_context = rfx_context_new();
+#else
+ context->rfx_context = rfx_context_new(TRUE);
+#endif
context->rfx_context->mode = RLGR3;
context->rfx_context->width = client->settings->DesktopWidth;
context->rfx_context->height = client->settings->DesktopHeight;
--
1.8.1.2
More information about the wayland-devel
mailing list