Fix more inconsistencies with [MS-RDPBCGR]

This commit is contained in:
matt335672
2025-09-05 12:19:56 +01:00
parent a09b4c7589
commit fa6ed3c702
+7 -5
View File
@@ -1109,7 +1109,8 @@ xrdp_rdp_send_synchronise(struct xrdp_rdp *self)
/*****************************************************************************/
/* Send a [MS-RDPBCGR] TS_CONTROL_PDU message */
static int
xrdp_rdp_send_control(struct xrdp_rdp *self, int action)
xrdp_rdp_send_control(struct xrdp_rdp *self, int action,
int grant_id, int control_id)
{
struct stream *s;
@@ -1124,8 +1125,8 @@ xrdp_rdp_send_control(struct xrdp_rdp *self, int action)
}
out_uint16_le(s, action);
out_uint16_le(s, 0); /* userid */
out_uint32_le(s, 1002); /* control id */
out_uint16_le(s, grant_id);
out_uint32_le(s, control_id);
s_mark_end(s);
LOG_DEVEL(LOG_LEVEL_TRACE, "Sending [MS-RDPBCGR] TS_CONTROL_PDU "
"action %d, grantId 0, controlId 1002", action);
@@ -1162,8 +1163,9 @@ xrdp_rdp_process_data_control(struct xrdp_rdp *self, struct stream *s)
"TS_SYNCHRONIZE_PDU, TS_CONTROL_PDU with CTRLACTION_COOPERATE, "
" and TS_CONTROL_PDU with CTRLACTION_GRANTED_CONTROL");
xrdp_rdp_send_synchronise(self);
xrdp_rdp_send_control(self, RDP_CTL_COOPERATE);
xrdp_rdp_send_control(self, RDP_CTL_GRANT_CONTROL);
xrdp_rdp_send_control(self, RDP_CTL_COOPERATE, 0, 0);
xrdp_rdp_send_control(self, RDP_CTL_GRANT_CONTROL,
self->mcs_channel, 0x03ea);
}
else
{