summaryrefslogtreecommitdiffstats
path: root/libxrdp/xrdp_sec.c
diff options
context:
space:
mode:
authorspeidy <speidy@gmail.com>2013-10-01 08:35:27 +0300
committerspeidy <speidy@gmail.com>2013-10-01 08:35:27 +0300
commitda62badee518fa31e3a4f9d7d5fb3ea32de40060 (patch)
tree68c98bf0ed4381e7d34714b5a1d89903435d4ba8 /libxrdp/xrdp_sec.c
parent24e4b8c937745ccd6855ce6e3d92c36a6f262c28 (diff)
downloadxrdp-proprietary-da62badee518fa31e3a4f9d7d5fb3ea32de40060.tar.gz
xrdp-proprietary-da62badee518fa31e3a4f9d7d5fb3ea32de40060.zip
libxrdp: work on RDP negotiation, add clientRequestedProtocol to MCS
response. (hardcoded values - temporarily)
Diffstat (limited to 'libxrdp/xrdp_sec.c')
-rw-r--r--libxrdp/xrdp_sec.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/libxrdp/xrdp_sec.c b/libxrdp/xrdp_sec.c
index 6cfd5ba1..d7847eb7 100644
--- a/libxrdp/xrdp_sec.c
+++ b/libxrdp/xrdp_sec.c
@@ -984,13 +984,14 @@ xrdp_sec_out_mcs_data(struct xrdp_sec *self)
out_uint8(s, 0x63); /* c */
out_uint8(s, 0x44); /* D */
out_uint8(s, 0x6e); /* n */
- out_uint16_be(s, 0x80fc + (num_channels_even * 2));
+ out_uint16_be(s, 0x80fc + (num_channels_even * 2) + 4);
out_uint16_le(s, SEC_TAG_SRV_INFO);
- out_uint16_le(s, 8); /* len */
+ out_uint16_le(s, 12); /* len */
out_uint8(s, 4); /* 4 = rdp5 1 = rdp4 */
out_uint8(s, 0);
out_uint8(s, 8);
out_uint8(s, 0);
+ out_uint32_le(s, PROTOCOL_RDP); /* clientReqeustedProtocol */ //TODO: pass it through sec_layer->selectedProtocol
out_uint16_le(s, SEC_TAG_SRV_CHANNELS);
out_uint16_le(s, 8 + (num_channels_even * 2)); /* len */
out_uint16_le(s, MCS_GLOBAL_CHANNEL); /* 1003, 0x03eb main channel */