Try to send the odd 0x03 RDP5 data before bitmap updates.
authorSteinar H. Gunderson <sesse@samfundet.no>
Sun, 6 Feb 2005 14:58:21 +0000 (14:58 +0000)
committerSteinar H. Gunderson <sesse@samfundet.no>
Sun, 6 Feb 2005 14:58:21 +0000 (14:58 +0000)
rdp.c
rdp5.c

diff --git a/rdp.c b/rdp.c
index 111f37b..dc32fc2 100644 (file)
--- a/rdp.c
+++ b/rdp.c
@@ -152,10 +152,13 @@ void rdp_send_bitmap_update(unsigned x, unsigned y, unsigned width, unsigned hei
 {
        STREAM s;
 
-       int length = 10*2 + width*height*3 + 5;
+       int length = 10*2 + width*height*3 + 5 + 3;
 
        s = rdp5_init(length, 1);
 
+       out_uint8(s, 3); // ??
+       out_uint16_le(s, 0); // length
+       
        out_uint8(s, 1); // process bitmap update
        out_uint16_le(s, 10*2 + width*height*3 + 2); // RDP5 chunk length
        out_uint16_le(s, 10*2 + width*height*3);     // part length
diff --git a/rdp5.c b/rdp5.c
index e8fd597..f84b888 100644 (file)
--- a/rdp5.c
+++ b/rdp5.c
@@ -88,6 +88,11 @@ rdp5_process(STREAM s, BOOL encryption)
 
                switch (type)
                {
+                       case 16 ... 31:
+                               // unknown, but looks like some sort of
+                               // "count" of how many packets there are
+                               printf("Unimplemented RDP5 opcode (count?) %d, skipping\n", type);
+                               break;
                        case 32: { // mouse
                                listen_on_vnc = 1;
                                uint16 device_flags, x, y;