From 944f266a82c0f169402399f383893e872995d201 Mon Sep 17 00:00:00 2001 From: speidy Date: Mon, 15 Jul 2013 22:45:40 +0300 Subject: [PATCH] libxrdp: work on multi-mon, x.224 confirm packet --- libxrdp/xrdp_iso.c | 11 ++++++----- libxrdp/xrdp_sec.c | 8 ++++---- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/libxrdp/xrdp_iso.c b/libxrdp/xrdp_iso.c index 04186ea9..4d311784 100644 --- a/libxrdp/xrdp_iso.c +++ b/libxrdp/xrdp_iso.c @@ -126,16 +126,17 @@ xrdp_iso_send_msg(struct xrdp_iso *self, struct stream *s, int code) return 1; } - /* TPKT HEADER */ + /* TPKT HEADER - 4 bytes */ out_uint8(s, 3); /* version */ out_uint8(s, 0); /* RESERVED */ out_uint16_be(s, 19); /* length */ - /* ISO LAYER */ + /* ISO LAYER - X.224 - 7 bytes*/ out_uint8(s, 14); /* length */ - out_uint8(s, code); - out_uint16_le(s, 0); - out_uint16_le(s, 4660); + out_uint8(s, code); /* SHOULD BE 0xd for CC */ + out_uint16_be(s, 0); + out_uint16_be(s, 0x1234); out_uint8(s, 0); + /* RDP_NEG_RSP - 8 bytes*/ out_uint8(s, 2); /* TYPE_RDP_NEG_RSP */ out_uint8(s, 1); /* flags */ out_uint16_le(s, 8); /* length */ diff --git a/libxrdp/xrdp_sec.c b/libxrdp/xrdp_sec.c index 89a710c6..6cfd5ba1 100644 --- a/libxrdp/xrdp_sec.c +++ b/libxrdp/xrdp_sec.c @@ -880,10 +880,10 @@ xrdp_sec_process_mcs_data_monitors(struct xrdp_sec *self, struct stream *s) { monitor_item = (struct mcs_monitor_item *) g_malloc(sizeof(struct mcs_monitor_item), 1); - in_uint32_le(s, monitor_item->x); - in_uint32_le(s, monitor_item->y); - in_uint32_le(s, monitor_item->width); - in_uint32_le(s, monitor_item->height); + in_uint32_le(s, monitor_item->x); //TODO: change to signed 32 bit int. + in_uint32_le(s, monitor_item->y); //TODO: change to signed 32 bit int. + in_uint32_le(s, monitor_item->width); //TODO: change to signed 32 bit int. + in_uint32_le(s, monitor_item->height); //TODO: change to signed 32 bit int. in_uint32_le(s, monitor_item->is_primary); list_add_item(self->mcs_layer->monitor_list, (long)monitor_item);