mirror of
https://github.com/FreeRDP/FreeRDP.git
synced 2025-06-03 00:00:20 +00:00
Fix to ensure channels are rejoined on a server redirect operation
This commit is contained in:
parent
616aed4ec2
commit
43ef3785c6
@ -128,6 +128,8 @@ boolean rdp_client_redirect(rdpRdp* rdp)
|
|||||||
|
|
||||||
rdp_client_disconnect(rdp);
|
rdp_client_disconnect(rdp);
|
||||||
|
|
||||||
|
rdp_clear_joined_channels(rdp);
|
||||||
|
|
||||||
mcs_free(rdp->mcs);
|
mcs_free(rdp->mcs);
|
||||||
nego_free(rdp->nego);
|
nego_free(rdp->nego);
|
||||||
license_free(rdp->license);
|
license_free(rdp->license);
|
||||||
@ -343,6 +345,22 @@ boolean rdp_client_connect_mcs_attach_user_confirm(rdpRdp* rdp, STREAM* s)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void rdp_clear_joined_channels(rdpRdp* rdp)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
if (rdp->mcs->user_channel_joined)
|
||||||
|
rdp->mcs->user_channel_joined = false;
|
||||||
|
|
||||||
|
if (rdp->mcs->global_channel_joined)
|
||||||
|
rdp->mcs->global_channel_joined = false;
|
||||||
|
|
||||||
|
for (i = 0; i < rdp->settings->num_channels; i++)
|
||||||
|
{
|
||||||
|
if (rdp->settings->channels[i].joined)
|
||||||
|
rdp->settings->channels[i].joined = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
boolean rdp_client_connect_mcs_channel_join_confirm(rdpRdp* rdp, STREAM* s)
|
boolean rdp_client_connect_mcs_channel_join_confirm(rdpRdp* rdp, STREAM* s)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
@ -50,6 +50,7 @@ boolean rdp_client_connect(rdpRdp* rdp);
|
|||||||
boolean rdp_client_redirect(rdpRdp* rdp);
|
boolean rdp_client_redirect(rdpRdp* rdp);
|
||||||
boolean rdp_client_connect_mcs_connect_response(rdpRdp* rdp, STREAM* s);
|
boolean rdp_client_connect_mcs_connect_response(rdpRdp* rdp, STREAM* s);
|
||||||
boolean rdp_client_connect_mcs_attach_user_confirm(rdpRdp* rdp, STREAM* s);
|
boolean rdp_client_connect_mcs_attach_user_confirm(rdpRdp* rdp, STREAM* s);
|
||||||
|
void rdp_clear_joined_channels(rdpRdp* rdp);
|
||||||
boolean rdp_client_connect_mcs_channel_join_confirm(rdpRdp* rdp, STREAM* s);
|
boolean rdp_client_connect_mcs_channel_join_confirm(rdpRdp* rdp, STREAM* s);
|
||||||
boolean rdp_client_connect_license(rdpRdp* rdp, STREAM* s);
|
boolean rdp_client_connect_license(rdpRdp* rdp, STREAM* s);
|
||||||
boolean rdp_client_connect_demand_active(rdpRdp* rdp, STREAM* s);
|
boolean rdp_client_connect_demand_active(rdpRdp* rdp, STREAM* s);
|
||||||
|
Loading…
Reference in New Issue
Block a user