server: fix pdu processing during reactivation.

This commit is contained in:
Vic Lee 2011-12-19 01:13:09 +08:00
parent b7a46c4bf0
commit 3b3660898d
2 changed files with 9 additions and 6 deletions

View File

@ -566,12 +566,8 @@ boolean rdp_server_accept_client_info(rdpRdp* rdp, STREAM* s)
boolean rdp_server_accept_confirm_active(rdpRdp* rdp, STREAM* s)
{
/**
* During reactivation sequence the client might sent some input before receiving
* the Deactivate All PDU. We need to ignore those noises here.
*/
if (!rdp_recv_confirm_active(rdp, s))
return true;
return false;
rdp->state = CONNECTION_STATE_ACTIVE;
update_reset_state(rdp->update);

View File

@ -224,7 +224,14 @@ static boolean peer_recv_callback(rdpTransport* transport, STREAM* s, void* extr
case CONNECTION_STATE_LICENSE:
if (!rdp_server_accept_confirm_active(client->context->rdp, s))
return false;
{
/**
* During reactivation sequence the client might sent some input or channel data
* before receiving the Deactivate All PDU. We need to process them as usual.
*/
stream_set_pos(s, 0);
return peer_recv_pdu(client, s);
}
break;
case CONNECTION_STATE_ACTIVE: