mirror of https://github.com/FreeRDP/FreeRDP
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_clear_joined_channels(rdp);
|
||||
|
||||
mcs_free(rdp->mcs);
|
||||
nego_free(rdp->nego);
|
||||
license_free(rdp->license);
|
||||
|
@ -343,6 +345,22 @@ boolean rdp_client_connect_mcs_attach_user_confirm(rdpRdp* rdp, STREAM* s)
|
|||
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)
|
||||
{
|
||||
int i;
|
||||
|
|
|
@ -50,6 +50,7 @@ boolean rdp_client_connect(rdpRdp* rdp);
|
|||
boolean rdp_client_redirect(rdpRdp* rdp);
|
||||
boolean rdp_client_connect_mcs_connect_response(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_license(rdpRdp* rdp, STREAM* s);
|
||||
boolean rdp_client_connect_demand_active(rdpRdp* rdp, STREAM* s);
|
||||
|
|
Loading…
Reference in New Issue