]> git.sesse.net Git - rdpsrv/blobdiff - rdp.c
Parse MCS_TAG_DOMAIN_PARAMS if the length is right.
[rdpsrv] / rdp.c
diff --git a/rdp.c b/rdp.c
index 09586920ba6bd1ed556dc132bf69620c4221314c..ff302fbd84737c8aeff707dd6369511da93ea122 100644 (file)
--- a/rdp.c
+++ b/rdp.c
@@ -151,14 +151,21 @@ rdp_in_unistr(STREAM s, char *string, int len)
 void rdp_send_bitmap_update(void)
 {
        STREAM s;
+       static unsigned int x = 1, y = 1;
+
+       x += 2;
+       if (x > 300) {
+               x = 2;
+               y += 2;
+       }
 
        s = rdp_init_data(11*2 + 2*2*3);
        out_uint16_le(s, RDP_UPDATE_BITMAP);
        out_uint16_le(s, 1); // one update
-       out_uint16_le(s, 1); // left, top, right, bottom
-       out_uint16_le(s, 2);
-       out_uint16_le(s, 3);
-       out_uint16_le(s, 4);
+       out_uint16_le(s, x); // left, top, right, bottom
+       out_uint16_le(s, y);
+       out_uint16_le(s, x+2);
+       out_uint16_le(s, y+2);
        out_uint16_le(s, 2); // width, height
        out_uint16_le(s, 2);
        out_uint16_le(s, 24); // bpp
@@ -253,25 +260,15 @@ rdp_send_synchronise(void)
        rdp_send_data(s, RDP_DATA_PDU_SYNCHRONISE);
 }
 
-/* Send a single input event */
+/* Receive a single input event */
 void
-rdp_send_input(uint32 time, uint16 message_type, uint16 device_flags, uint16 param1, uint16 param2)
+rdp_recv_input(STREAM s, uint32 *time, uint16 *message_type, uint16 *device_flags, uint16 *param1, uint16 *param2)
 {
-       STREAM s;
-
-       s = rdp_init_data(16);
-
-       out_uint16_le(s, 1);    /* number of events */
-       out_uint16(s, 0);       /* pad */
-
-       out_uint32_le(s, time);
-       out_uint16_le(s, message_type);
-       out_uint16_le(s, device_flags);
-       out_uint16_le(s, param1);
-       out_uint16_le(s, param2);
-
-       s_mark_end(s);
-       rdp_send_data(s, RDP_DATA_PDU_INPUT);
+       in_uint32_le(s, time);
+       in_uint16_le(s, message_type);
+       in_uint16_le(s, device_flags);
+       in_uint16_le(s, param1);
+       in_uint16_le(s, param2);
 }
 
 /* Disconnect from the RDP layer */