]> git.sesse.net Git - rdpsrv/blobdiff - rdp5.c
Try to send the odd 0x03 RDP5 data before bitmap updates.
[rdpsrv] / rdp5.c
diff --git a/rdp5.c b/rdp5.c
index 1612643de0bf497390679563be8eb812b39e80fe..f84b8882146b14edf8b3cde385669adbef77196b 100644 (file)
--- a/rdp5.c
+++ b/rdp5.c
@@ -55,7 +55,7 @@ rdp5_send(STREAM s, BOOL encryption)
        out_uint8(s, datalen & 0xff);
 
        if (encryption) {
-               datalen -= 8;
+               datalen -= 11;
 
                sec_sign(s->p, 8, sec_sign_key, rc4_key_len, s->p + 8, datalen);
                sec_encrypt(s->p + 8, datalen);
@@ -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;
@@ -119,7 +124,7 @@ rdp5_process(STREAM s, BOOL encryption)
                                break;
                        }
                        default:
-                               printf("Unimplemented RDP5 opcode %d (len=%u)\n", type, length);
+                               printf("Unimplemented RDP5 opcode %d\n", type);
                                return;
                }
        }