From 5a7621bfa34f815bef60e5db8e4634473189c5bc Mon Sep 17 00:00:00 2001 From: Armin Novak Date: Wed, 4 Dec 2024 15:48:17 +0100 Subject: [PATCH] [core,freerdp] fix automatic reconnect after auth In freerdp_connect do an automatic reconnect if we failed with a FREERDP_ERROR_CONNECT_TRANSPORT_FAILED This way we can prevent connection disconnects if the remote was disconnected due to timeout (e.g. Auth-Dialog was open for a long time) --- libfreerdp/core/freerdp.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/libfreerdp/core/freerdp.c b/libfreerdp/core/freerdp.c index 86444f22a..94dad20a0 100644 --- a/libfreerdp/core/freerdp.c +++ b/libfreerdp/core/freerdp.c @@ -193,12 +193,7 @@ BOOL freerdp_connect(freerdp* instance) WINPR_ASSERT(rdp); WINPR_ASSERT(rdp->settings); - if (rc < 0) - return FALSE; - - if (rc == 0) - goto freerdp_connect_finally; - + if (rc > 0) /* Pointers might have changed in between */ { rdp_update_internal* up = update_cast(rdp->update); @@ -211,10 +206,7 @@ BOOL freerdp_connect(freerdp* instance) if (up->pcap_rfx) up->dump_rfx = TRUE; } - } - if (rc > 0) - { pointer_cache_register_callbacks(instance->context->update); status = IFCALLRESULT(TRUE, instance->PostConnect, instance); instance->ConnectionCallbackState = CLIENT_STATE_POSTCONNECT_PASSED;