X-Git-Url: https://git.sesse.net/?p=rdpsrv;a=blobdiff_plain;f=rdp.c;h=52ea0093ea48b073d63590c9206fd51ef6c877d6;hp=eafd3d0da7fae6e2506951723366e64fcd9c8355;hb=e0d6c6eb80e1c3ce8c95954002bb3c6642681758;hpb=108dfcdf9ffdb01149173feacc2592a8a359be74 diff --git a/rdp.c b/rdp.c index eafd3d0..52ea009 100644 --- a/rdp.c +++ b/rdp.c @@ -80,7 +80,7 @@ rdp_recv(uint8 * type) } /* Initialise an RDP data packet */ -static STREAM +STREAM rdp_init_data(int maxlen) { STREAM s; @@ -92,7 +92,7 @@ rdp_init_data(int maxlen) } /* Send an RDP data packet */ -static void +void rdp_send_data(STREAM s, uint8 data_pdu_type) { uint16 length; @@ -148,6 +148,44 @@ rdp_in_unistr(STREAM s, char *string, int len) s->p += len; } +void rdp_send_bitmap_update(void) +{ + STREAM s; + + s = rdp_init_data(11*2 + 2*2*3); + out_uint16_le(s, RDP_UPDATE_BITMAP); + out_uint16_le(s, 1); // one update + out_uint16_le(s, 1); // left, top, right, bottom + out_uint16_le(s, 2); + out_uint16_le(s, 3); + out_uint16_le(s, 4); + out_uint16_le(s, 2); // width, height + out_uint16_le(s, 2); + out_uint16_le(s, 24); // bpp + out_uint16_le(s, 0); // no compression + out_uint16_le(s, 2*2*3); // bufsize + + out_uint8(s, 255); + out_uint8(s, 0); + out_uint8(s, 0); + + out_uint8(s, 0); + out_uint8(s, 255); + out_uint8(s, 0); + + out_uint8(s, 0); + out_uint8(s, 0); + out_uint8(s, 255); + + out_uint8(s, 255); + out_uint8(s, 255); + out_uint8(s, 255); + + s_mark_end(s); + rdp_send_data(s, RDP_DATA_PDU_UPDATE); +} + + void rdp_get_logon_info(STREAM s) {