[PATCH 1/6] rdp: allow to compile against FreeRDP 2.0

Hardening rdp.effort at gmail.com
Sun May 1 21:34:12 UTC 2016


Le 01/05/2016 23:32, David Fort a écrit :
> FreeRDP 2.0 is about to be released, this allows to compile against this version.
> The detection is adjusted to prefer FreeRDP 2 against version 1.x.
> 
> Signed-off-by: David Fort <contact at hardening-consulting.com>
> ---
>  configure.ac         |  5 ++++-
>  src/compositor-rdp.c | 23 ++++++++++++++++-------
>  2 files changed, 20 insertions(+), 8 deletions(-)
> 
> diff --git a/configure.ac b/configure.ac
> index 4199616..6ab9c99 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -238,7 +238,10 @@ AM_CONDITIONAL([ENABLE_RDP_COMPOSITOR],
>                 [test x$enable_rdp_compositor = xyes])
>  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])
> +  PKG_CHECK_MODULES(RDP_COMPOSITOR, [freerdp2 >= 2.0.0],
> +    [],
> +    [PKG_CHECK_MODULES(RDP_COMPOSITOR, [freerdp >= 1.1.0],[])]
> +  )

So this way it should not bug Quentin Glidic ;)

>  
>    SAVED_CPPFLAGS="$CPPFLAGS"
>    CPPFLAGS="$CPPFLAGS $RDP_COMPOSITOR_CFLAGS"
> diff --git a/src/compositor-rdp.c b/src/compositor-rdp.c
> index 2860556..f6778b6 100644
> --- a/src/compositor-rdp.c
> +++ b/src/compositor-rdp.c
> @@ -42,15 +42,24 @@
>  #define FREERDP_VERSION_NUMBER ((FREERDP_VERSION_MAJOR * 0x10000) + \
>  		(FREERDP_VERSION_MINOR * 0x100) + FREERDP_VERSION_REVISION)
>  
> +
>  #if FREERDP_VERSION_NUMBER >= 0x10201
>  #define HAVE_SKIP_COMPRESSION
>  #endif
>  
>  #if FREERDP_VERSION_NUMBER < 0x10202
> -#define FREERDP_CB_RET_TYPE void
> -#define FREERDP_CB_RETURN(V) return
> +#	define FREERDP_CB_RET_TYPE void
> +#	define FREERDP_CB_RETURN(V) return
> +#	define NSC_RESET(C, W, H)
> +#	define RFX_RESET(C, W, H) do { rfx_context_reset(C); C->width = W; C->height = H; } while(0)
> +#else
> +#if FREERDP_VERSION_MAJOR >= 2
> +#	define NSC_RESET(C, W, H) nsc_context_reset(C, W, H)
> +#	define RFX_RESET(C, W, H) rfx_context_reset(C, W, H)
>  #else
> -#define HAVE_NSC_RESET
> +#	define NSC_RESET(C, W, H) do { nsc_context_reset(C); C->width = W; C->height = H; } while(0)
> +#	define RFX_RESET(C, W, H) do { rfx_context_reset(C); C->width = W; C->height = H; } while(0)
> +#endif
>  #define FREERDP_CB_RET_TYPE BOOL
>  #define FREERDP_CB_RETURN(V) return TRUE
>  #endif
> @@ -795,6 +804,7 @@ xf_peer_activate(freerdp_peer* client)
>  	struct xkb_context *xkbContext;
>  	struct xkb_rule_names xkbRuleNames;
>  	struct xkb_keymap *keymap;
> +	struct weston_output *weston_output;
>  	int i;
>  	pixman_box32_t box;
>  	pixman_region32_t damage;
> @@ -843,10 +853,9 @@ xf_peer_activate(freerdp_peer* client)
>  		}
>  	}
>  
> -	rfx_context_reset(peerCtx->rfx_context);
> -#ifdef HAVE_NSC_RESET
> -	nsc_context_reset(peerCtx->nsc_context);
> -#endif
> +	weston_output = &output->base;
> +	RFX_RESET(peerCtx->rfx_context, weston_output->width, weston_output->height);
> +	NSC_RESET(peerCtx->nsc_context, weston_output->width, weston_output->height);
>  
>  	if (peersItem->flags & RDP_PEER_ACTIVATED)
>  		return TRUE;
> 


-- 
David FORT
website: http://www.hardening-consulting.com/



More information about the wayland-devel mailing list