Removed rdp disconnect, using unified abortEvent instead.
This commit is contained in:
parent
893e7a35a8
commit
188fe4ed2b
@ -318,7 +318,7 @@ BOOL rdp_recv_deactivate_all(rdpRdp* rdp, wStream* s)
|
||||
if (rdp_check_fds(rdp) < 0)
|
||||
return FALSE;
|
||||
|
||||
if (rdp->disconnect)
|
||||
if (freerdp_shall_disconnect(rdp->instance))
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -3540,7 +3540,7 @@ BOOL rdp_recv_get_active_header(rdpRdp* rdp, wStream* s, UINT16* pChannelId)
|
||||
if (!rdp_read_header(rdp, s, &length, pChannelId))
|
||||
return FALSE;
|
||||
|
||||
if (rdp->disconnect)
|
||||
if (freerdp_shall_disconnect(rdp->instance))
|
||||
return TRUE;
|
||||
|
||||
if (rdp->settings->UseRdpSecurityLayer)
|
||||
@ -3585,7 +3585,7 @@ BOOL rdp_recv_demand_active(rdpRdp* rdp, wStream* s)
|
||||
if (!rdp_recv_get_active_header(rdp, s, &channelId))
|
||||
return FALSE;
|
||||
|
||||
if (rdp->disconnect)
|
||||
if (freerdp_shall_disconnect(rdp->instance))
|
||||
return TRUE;
|
||||
|
||||
if (!rdp_read_share_control_header(s, &pduLength, &pduType, &pduSource))
|
||||
|
@ -188,6 +188,8 @@ BOOL rdp_client_connect(rdpRdp* rdp)
|
||||
if (!rdp->settingsCopy)
|
||||
return FALSE;
|
||||
|
||||
ResetEvent(rdp->context->abortEvent);
|
||||
|
||||
nego_init(rdp->nego);
|
||||
nego_set_target(rdp->nego, settings->ServerHostname, settings->ServerPort);
|
||||
|
||||
@ -832,7 +834,7 @@ int rdp_client_connect_demand_active(rdpRdp* rdp, wStream* s)
|
||||
return rdp_recv_out_of_sequence_pdu(rdp, s);
|
||||
}
|
||||
|
||||
if (rdp->disconnect)
|
||||
if (freerdp_shall_disconnect(rdp->instance))
|
||||
return 0;
|
||||
|
||||
if (!rdp_send_confirm_active(rdp))
|
||||
|
@ -74,11 +74,6 @@ BOOL freerdp_connect(freerdp* instance)
|
||||
rdp = instance->context->rdp;
|
||||
settings = instance->settings;
|
||||
|
||||
if (rdp)
|
||||
rdp->disconnect = FALSE;
|
||||
|
||||
ResetEvent(instance->context->abortEvent);
|
||||
|
||||
instance->context->codecs = codecs_new(instance->context);
|
||||
IFCALLRET(instance->PreConnect, status, instance);
|
||||
|
||||
@ -192,9 +187,6 @@ BOOL freerdp_abort_connect(freerdp* instance)
|
||||
if (!instance || !instance->context)
|
||||
return FALSE;
|
||||
|
||||
if (instance->context->rdp)
|
||||
instance->context->rdp->disconnect = TRUE;
|
||||
|
||||
return SetEvent(instance->context->abortEvent);
|
||||
}
|
||||
|
||||
@ -392,9 +384,11 @@ BOOL freerdp_reconnect(freerdp* instance)
|
||||
|
||||
BOOL freerdp_shall_disconnect(freerdp* instance)
|
||||
{
|
||||
if (!instance || !instance->context || !instance->context->rdp)
|
||||
if (!instance || !instance->context)
|
||||
return FALSE;
|
||||
return instance->context->rdp->disconnect;
|
||||
if (WaitForSingleObject(instance->context->abortEvent, 0) != WAIT_OBJECT_0)
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
FREERDP_API BOOL freerdp_focus_required(freerdp* instance)
|
||||
|
@ -340,7 +340,7 @@ int rpc_client_recv_fragment(rdpRpc* rpc, wStream* fragment)
|
||||
|
||||
rpc->result = *((UINT32*) &buffer[StubOffset]);
|
||||
|
||||
rpc->context->rdp->disconnect = TRUE;
|
||||
freerdp_abort_connect(rpc->context->instance);
|
||||
rpc->transport->tsg->state = TSG_STATE_TUNNEL_CLOSE_PENDING;
|
||||
EventArgsInit(&e, "freerdp");
|
||||
e.code = 0;
|
||||
|
@ -356,7 +356,7 @@ static int peer_recv_tpkt_pdu(freerdp_peer* client, wStream* s)
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (rdp->disconnect)
|
||||
if (freerdp_shall_disconnect(rdp->instance))
|
||||
return 0;
|
||||
|
||||
if (rdp->settings->UseRdpSecurityLayer)
|
||||
|
@ -307,7 +307,7 @@ BOOL rdp_read_header(rdpRdp* rdp, wStream* s, UINT16* length, UINT16* channelId)
|
||||
{
|
||||
if (code == X224_TPDU_DISCONNECT_REQUEST)
|
||||
{
|
||||
rdp->disconnect = TRUE;
|
||||
freerdp_abort_connect(rdp->instance);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -341,7 +341,7 @@ BOOL rdp_read_header(rdpRdp* rdp, wStream* s, UINT16* length, UINT16* channelId)
|
||||
|
||||
if (!rdp->instance)
|
||||
{
|
||||
rdp->disconnect = TRUE;
|
||||
freerdp_abort_connect(rdp->instance);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@ -364,7 +364,7 @@ BOOL rdp_read_header(rdpRdp* rdp, wStream* s, UINT16* length, UINT16* channelId)
|
||||
}
|
||||
|
||||
WLog_ERR(TAG, "DisconnectProviderUltimatum: reason: %d", reason);
|
||||
rdp->disconnect = TRUE;
|
||||
freerdp_abort_connect(rdp->instance);
|
||||
|
||||
EventArgsInit(&e, "freerdp");
|
||||
e.code = 0;
|
||||
@ -1117,7 +1117,7 @@ static int rdp_recv_tpkt_pdu(rdpRdp* rdp, wStream* s)
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (rdp->disconnect)
|
||||
if (freerdp_shall_disconnect(rdp->instance))
|
||||
return 0;
|
||||
|
||||
if (rdp->autodetect->bandwidthMeasureStarted)
|
||||
@ -1647,7 +1647,6 @@ void rdp_reset(rdpRdp* rdp)
|
||||
rdp->nego = nego_new(rdp->transport);
|
||||
rdp->mcs = mcs_new(rdp->transport);
|
||||
rdp->transport->layer = TRANSPORT_LAYER_TCP;
|
||||
rdp->disconnect = FALSE;
|
||||
rdp->errorInfo = 0;
|
||||
rdp->deactivation_reactivation = 0;
|
||||
rdp->finalize_sc_pdus = 0;
|
||||
|
@ -171,7 +171,6 @@ struct rdp_rdp
|
||||
BYTE fips_decrypt_key[24];
|
||||
UINT32 errorInfo;
|
||||
UINT32 finalize_sc_pdus;
|
||||
BOOL disconnect;
|
||||
BOOL resendFocus;
|
||||
BOOL deactivation_reactivation;
|
||||
BOOL AwaitCapabilities;
|
||||
|
Loading…
Reference in New Issue
Block a user