void rdp5_send(STREAM s, BOOL encryption);
void rdp5_process(STREAM s, BOOL encryption);
/* rdp.c */
+STREAM rdp_init_data(int maxlen);
+void rdp_send_data(STREAM s, uint8 data_pdu_type);
STREAM rdp_recv(uint8 * type);
void rdp_out_unistr(STREAM s, char *string, int len);
void rdp_recv_input(STREAM s, uint32 *time, uint16 *message_type, uint16 *device_flags, uint16 *param1, uint16 *param2);
}
}
+void
+handle_font2_pdu(STREAM s)
+{
+ printf("FONT2 PDU, responding with magic\n");
+
+ s = rdp_init_data(8);
+ out_uint16_le(s, 0);
+ out_uint16_le(s, 0);
+ out_uint16_le(s, 3);
+ out_uint16_le(s, 4);
+ s_mark_end(s);
+ rdp_send_data(s, 0x28);
+}
+
struct ServerInitialization {
unsigned short width;
unsigned short height;
rdp_send_synchronise(id);
break;
case RDP_DATA_PDU_FONT2:
- // respond with the
- // unknown 0x28 PDU
- // here?
- printf("FONT2, ignored\n");
+ handle_font2_pdu(s);
break;
default:
printf("Unknown data PDU type %u\n", data_pdu_type);