From 2a06366de3bd24a641a52dfb77fb88696f8fe05d Mon Sep 17 00:00:00 2001 From: Armin Novak Date: Tue, 19 Feb 2019 14:12:25 +0100 Subject: [PATCH] Added autoreconnect for wayland. --- client/Wayland/wlfreerdp.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/client/Wayland/wlfreerdp.c b/client/Wayland/wlfreerdp.c index 93042cd..f56c016 100644 --- a/client/Wayland/wlfreerdp.c +++ b/client/Wayland/wlfreerdp.c @@ -242,6 +242,7 @@ static BOOL wl_post_connect(freerdp* instance) w = (UINT32)gdi->width; h = (UINT32)gdi->height; + if (settings->SmartSizing && !context->fullscreen) { if (settings->SmartSizingWidth > 0) @@ -390,6 +391,22 @@ static BOOL handle_uwac_events(freerdp* instance, UwacDisplay* display) return TRUE; } +static BOOL handle_window_events(freerdp* instance) +{ + rdpSettings* settings; + + if (!instance || !instance->settings) + return FALSE; + + settings = instance->settings; + + if (!settings->AsyncInput) + { + } + + return TRUE; +} + static int wlfreerdp_run(freerdp* instance) { wlfContext* context; @@ -438,6 +455,18 @@ static int wlfreerdp_run(freerdp* instance) if (freerdp_check_event_handles(instance->context) != TRUE) { + if (client_auto_reconnect_ex(instance, handle_window_events)) + continue; + else + { + /* + * Indicate an unsuccessful connection attempt if reconnect + * did not succeed and no other error was specified. + */ + if (freerdp_error_info(instance) == 0) + status = 42; + } + if (freerdp_get_last_error(instance->context) == FREERDP_ERROR_SUCCESS) WLog_Print(context->log, WLOG_ERROR, "Failed to check FreeRDP file descriptor"); -- 2.7.4