From be2f6b0f75a6fb6ac1278d2cd935a36419a09d0f Mon Sep 17 00:00:00 2001 From: David Fort Date: Wed, 27 Sep 2017 12:01:10 +0200 Subject: [PATCH] Fix API troubles with FreeRDP 2.0 v2 With FreeRDP 2.0 the crypto needs to be initialized or we fail as soon as we try to compute a md5. The API also changed for the suppress output callback. Reviewed-by: Pekka Paalanen --- libweston/compositor-rdp.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/libweston/compositor-rdp.c b/libweston/compositor-rdp.c index 091472b0..ddc49ab6 100644 --- a/libweston/compositor-rdp.c +++ b/libweston/compositor-rdp.c @@ -76,6 +76,10 @@ #include #include +#if FREERDP_VERSION_MAJOR >= 2 +#include +#endif + #include "shared/helpers.h" #include "compositor.h" #include "compositor-rdp.h" @@ -1013,7 +1017,8 @@ xf_peer_activate(freerdp_peer* client) return TRUE; } -static BOOL xf_peer_post_connect(freerdp_peer *client) +static BOOL +xf_peer_post_connect(freerdp_peer *client) { return TRUE; } @@ -1166,7 +1171,7 @@ xf_input_unicode_keyboard_event(rdpInput *input, UINT16 flags, UINT16 code) static FREERDP_CB_RET_TYPE -xf_suppress_output(rdpContext *context, BYTE allow, RECTANGLE_16 *area) +xf_suppress_output(rdpContext *context, BYTE allow, const RECTANGLE_16 *area) { RdpPeerContext *peerContext = (RdpPeerContext *)context; @@ -1227,7 +1232,7 @@ rdp_peer_init(freerdp_peer *client, struct rdp_backend *b) client->PostConnect = xf_peer_post_connect; client->Activate = xf_peer_activate; - client->update->SuppressOutput = xf_suppress_output; + client->update->SuppressOutput = (pSuppressOutput)xf_suppress_output; input = client->input; input->SynchronizeEvent = xf_input_synchronize_event; @@ -1387,6 +1392,9 @@ weston_backend_init(struct weston_compositor *compositor, struct weston_rdp_backend_config config = {{ 0, }}; int major, minor, revision; +#if FREERDP_VERSION_MAJOR >= 2 + winpr_InitializeSSL(0); +#endif freerdp_get_version(&major, &minor, &revision); weston_log("using FreeRDP version %d.%d.%d\n", major, minor, revision);