Merge pull request #924 from Nigel62/stable-1.0

Fix to ensure channels are rejoined on a server redirect operation
This commit is contained in:
Marc-André Moreau 2013-01-24 08:41:57 -08:00
commit d8562ed6a6
2 changed files with 19 additions and 0 deletions

View File

@ -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;

View File

@ -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);