int serve_client()
{
+ if (!mcs_recv_connect_initial())
+ error("MCS_CONNECT_INITIAL recv failed");
+ mcs_send_connect_response();
+
for ( ;; ) {
- short channel;
-
- /* receive ISO packets */
- mcs_recv(&channel);
+ uint8 type, data_pdu_type;
+ STREAM s;
+
+ while ((s = rdp_recv(&type)) != NULL) {
+ 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);
+ };
+
+// rdp_send_bitmap_update();
+ }
}
}