BOOL freerdp_disconnect(freerdp* instance) { BOOL rc = TRUE; rdpRdp* rdp; rdp = instance->context->rdp; rdp_client_disconnect(rdp); update_post_disconnect(instance->update); if (instance->settings->AsyncInput) { wMessageQueue* inputQueue = freerdp_get_message_queue(instance, FREERDP_INPUT_MESSAGE_QUEUE); MessageQueue_PostQuit(inputQueue, 0); } if (freerdp_channels_disconnect(instance->context->channels, instance) != CHANNEL_RC_OK) rc = FALSE; IFCALL(instance->PostDisconnect, instance); if (instance->update->pcap_rfx) { instance->update->dump_rfx = FALSE; pcap_close(instance->update->pcap_rfx); instance->update->pcap_rfx = NULL; } codecs_free(instance->context->codecs); freerdp_channels_close(instance->context->channels, instance); return rc; }
BOOL freerdp_disconnect(freerdp* instance) { rdpRdp* rdp; rdp = instance->context->rdp; transport_disconnect(rdp->transport); update_post_disconnect(instance->update); IFCALL(instance->PostDisconnect, instance); if (instance->update->pcap_rfx) { instance->update->dump_rfx = FALSE; pcap_close(instance->update->pcap_rfx); instance->update->pcap_rfx = NULL; } return TRUE; }
BOOL freerdp_disconnect(freerdp* instance) { rdpRdp* rdp; rdp = instance->context->rdp; rdp_client_disconnect(rdp); update_post_disconnect(instance->update); IFCALL(instance->PostDisconnect, instance); if (instance->update->pcap_rfx) { instance->update->dump_rfx = FALSE; pcap_close(instance->update->pcap_rfx); instance->update->pcap_rfx = NULL; } codecs_free(instance->context->codecs); return TRUE; }