From b6730ea31e1a4734793147c910c9e5fed0d9783d Mon Sep 17 00:00:00 2001 From: kubistika Date: Wed, 25 Sep 2019 16:09:15 +0300 Subject: [PATCH] server: proxy: support auto reconnect --- server/proxy/pf_client.c | 1 + server/proxy/pf_update.c | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/server/proxy/pf_client.c b/server/proxy/pf_client.c index 7bd2b5c..6e79f50 100644 --- a/server/proxy/pf_client.c +++ b/server/proxy/pf_client.c @@ -149,6 +149,7 @@ static BOOL pf_client_pre_connect(freerdp* instance) settings->SupportDisplayControl = config->DisplayControl; settings->DynamicResolutionUpdate = config->DisplayControl; + settings->AutoReconnectionEnabled = TRUE; /** * Register the channel listeners. * They are required to set up / tear down channels if they are loaded. diff --git a/server/proxy/pf_update.c b/server/proxy/pf_update.c index 6bedec3..81cdaf4 100644 --- a/server/proxy/pf_update.c +++ b/server/proxy/pf_update.c @@ -141,6 +141,14 @@ static BOOL pf_client_send_pointer_cached(rdpContext* context, return ps->update->pointer->PointerCached(ps, pointer_cached); } +static BOOL pf_client_save_session_info(rdpContext* context, UINT32 type, void* data) +{ + pClientContext* pc = (pClientContext*) context; + proxyData* pdata = pc->pdata; + rdpContext* ps = (rdpContext*)pdata->ps; + return ps->update->SaveSessionInfo(ps, type, data); +} + void pf_client_register_update_callbacks(rdpUpdate* update) { update->BeginPaint = pf_client_begin_paint; @@ -148,6 +156,7 @@ void pf_client_register_update_callbacks(rdpUpdate* update) update->BitmapUpdate = pf_client_bitmap_update; update->DesktopResize = pf_client_desktop_resize; update->RemoteMonitors = pf_client_remote_monitors; + update->SaveSessionInfo = pf_client_save_session_info; update->pointer->PointerSystem = pf_client_send_pointer_system; update->pointer->PointerPosition = pf_client_send_pointer_position; -- 2.7.4