From 71c3f8e4bb282d740c35c3903453d0977b875322 Mon Sep 17 00:00:00 2001 From: Armin Novak Date: Tue, 8 Nov 2022 11:38:55 +0100 Subject: [PATCH] Removed blocking loop in rdp_recv_deactivate_all The new state machine expects just a state change and will handle the following transitions from there. --- libfreerdp/core/activation.c | 24 ++---------------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/libfreerdp/core/activation.c b/libfreerdp/core/activation.c index f22c1e134..9fd07b07d 100644 --- a/libfreerdp/core/activation.c +++ b/libfreerdp/core/activation.c @@ -586,7 +586,6 @@ BOOL rdp_send_server_font_map_pdu(rdpRdp* rdp) BOOL rdp_recv_deactivate_all(rdpRdp* rdp, wStream* s) { UINT16 lengthSourceDescriptor; - UINT32 timeout; WINPR_ASSERT(rdp); WINPR_ASSERT(s); @@ -631,27 +630,8 @@ BOOL rdp_recv_deactivate_all(rdpRdp* rdp, wStream* s) } while (0); } - rdp_client_transition_to_state(rdp, CONNECTION_STATE_CAPABILITIES_EXCHANGE_DEMAND_ACTIVE); - - for (timeout = 0; timeout < freerdp_settings_get_uint32(rdp->settings, FreeRDP_TcpAckTimeout); - timeout += 100) - { - if (rdp_check_fds(rdp) < 0) - return FALSE; - - WINPR_ASSERT(rdp->context); - if (freerdp_shall_disconnect_context(rdp->context)) - return TRUE; - - if (rdp_get_state(rdp) == CONNECTION_STATE_ACTIVE) - return TRUE; - - Sleep(100); - } - - WLog_ERR(TAG, "Timeout waiting for activation"); - freerdp_set_last_error_if_not(rdp->context, FREERDP_ERROR_CONNECT_ACTIVATION_TIMEOUT); - return FALSE; + return rdp_client_transition_to_state( + rdp, CONNECTION_STATE_CAPABILITIES_EXCHANGE_DEMAND_ACTIVE) == 0; } BOOL rdp_send_deactivate_all(rdpRdp* rdp)