static BOOL freerdp_peer_close(freerdp_peer* client) { /** * [MS-RDPBCGR] 1.3.1.4.2 User-Initiated Disconnection Sequence on Server * The server first sends the client a Deactivate All PDU followed by an * optional MCS Disconnect Provider Ultimatum PDU. */ if (!rdp_send_deactivate_all(client->context->rdp)) return FALSE; if (freerdp_get_param_bool(client->settings, FreeRDP_SupportErrorInfoPdu) ) { rdp_send_error_info(client->context->rdp); } return mcs_send_disconnect_provider_ultimatum(client->context->rdp->mcs); }
static BOOL freerdp_peer_close(freerdp_peer* client) { /** if negotiation has failed, we're not MCS connected. So don't * send anything else, or some mstsc will consider that as an error */ if (client->context->rdp->nego->SelectedProtocol & PROTOCOL_FAILED_NEGO) return TRUE; /** * [MS-RDPBCGR] 1.3.1.4.2 User-Initiated Disconnection Sequence on Server * The server first sends the client a Deactivate All PDU followed by an * optional MCS Disconnect Provider Ultimatum PDU. */ if (!rdp_send_deactivate_all(client->context->rdp)) return FALSE; if (freerdp_get_param_bool(client->settings, FreeRDP_SupportErrorInfoPdu) ) { rdp_send_error_info(client->context->rdp); } return mcs_send_disconnect_provider_ultimatum(client->context->rdp->mcs); }