Barely recognize some RDP data PDUs.
authorSteinar H. Gunderson <sgunderson@bigfoot.com>
Fri, 4 Feb 2005 01:32:03 +0000 (01:32 +0000)
committerSteinar H. Gunderson <sgunderson@bigfoot.com>
Fri, 4 Feb 2005 01:32:03 +0000 (01:32 +0000)
rdpsrv.c

index dda4a17..e001cd2 100644 (file)
--- a/rdpsrv.c
+++ b/rdpsrv.c
@@ -66,11 +66,26 @@ int serve_client()
        mcs_send_connect_response();
        
        for ( ;; ) {
-               uint8 type;
+               uint8 type, data_pdu_type;
                STREAM s;
 
                while ((s = rdp_recv(&type)) != NULL) {
-                       printf("RDP packet! type %u\n", type);
+                       if (type != RDP_PDU_DATA) {
+                               printf("Unknown RDP packet of type %u\n", type);
+                               continue;
+                       }
+
+                       in_uint8s(s, 8);        /* shareid, pad, streamid, length */
+                       in_uint8(s, data_pdu_type);
+                       in_uint8s(s, 3);        /* compress_type, compress_len */
+
+                       switch (data_pdu_type) {
+                       case RDP_DATA_PDU_INPUT:
+                               printf("Input PDU\n");
+                               break;
+                       default:
+                               printf("Unknown data PDU type %u\n", data_pdu_type);
+                       };
                }
        }
 }