diff options
author | speidy <speidy@gmail.com> | 2013-10-01 08:35:27 +0300 |
---|---|---|
committer | speidy <speidy@gmail.com> | 2013-10-01 08:35:27 +0300 |
commit | da62badee518fa31e3a4f9d7d5fb3ea32de40060 (patch) | |
tree | 68c98bf0ed4381e7d34714b5a1d89903435d4ba8 /libxrdp | |
parent | 24e4b8c937745ccd6855ce6e3d92c36a6f262c28 (diff) | |
download | xrdp-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')
-rw-r--r-- | libxrdp/xrdp_iso.c | 3 | ||||
-rw-r--r-- | libxrdp/xrdp_sec.c | 5 |
2 files changed, 3 insertions, 5 deletions
diff --git a/libxrdp/xrdp_iso.c b/libxrdp/xrdp_iso.c index 99920702..dad2698f 100644 --- a/libxrdp/xrdp_iso.c +++ b/libxrdp/xrdp_iso.c @@ -119,9 +119,6 @@ xrdp_iso_recv_msg(struct xrdp_iso *self, struct stream *s, int *code) in_uint8s(s, 1); in_uint16_be(s, len); - // print CR packet hex dump - g_hexdump(s->p, len); - if (xrdp_tcp_recv(self->tcp_layer, s, len - 4) != 0) { return 1; 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 */ |