]> git.sesse.net Git - rdpsrv/blobdiff - rdp.c
Valgrind fixes, re-request updates all the time.
[rdpsrv] / rdp.c
diff --git a/rdp.c b/rdp.c
index cd2f7c9d9b8e9a313798ebe3f23d05b12a23c711..56a0f7c90e09ac84cb2993563c869f725a073f62 100644 (file)
--- a/rdp.c
+++ b/rdp.c
@@ -72,7 +72,7 @@ rdp_recv(uint8 * type)
 
 #if WITH_DEBUG
        DEBUG(("RDP packet #%d, (type %x, length %u)\n", ++g_packetno, *type, length));
-       hexdump(g_next_packet, length);
+       //hexdump(g_next_packet, length);
 #endif /*  */
 
        g_next_packet += length;
@@ -148,38 +148,24 @@ rdp_in_unistr(STREAM s, char *string, int len)
        s->p += len;
 }
 
-void rdp_send_bitmap_update(unsigned x, unsigned y)
+void rdp_send_bitmap_update(unsigned x, unsigned y, unsigned width, unsigned height, unsigned char *data)
 {
        STREAM s;
 
-       s = rdp_init_data(11*2 + 2*2*3);
+       s = rdp_init_data(11*2 + width*height*3);
        out_uint16_le(s, RDP_UPDATE_BITMAP);
        out_uint16_le(s, 1); // one update
        out_uint16_le(s, x); // left, top, right, bottom
        out_uint16_le(s, y);
-       out_uint16_le(s, x+2);
-       out_uint16_le(s, y+2);
-       out_uint16_le(s, 2); // width, height
-       out_uint16_le(s, 2);
+       out_uint16_le(s, x+width);
+       out_uint16_le(s, y+height);
+       out_uint16_le(s, width); // width, height
+       out_uint16_le(s, height);
        out_uint16_le(s, 24); // bpp
        out_uint16_le(s, 0); // no compression
-       out_uint16_le(s, 2*2*3); // bufsize
+       out_uint16_le(s, width*height*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);
+       out_uint8p(s, data, width*height*3);
        
        s_mark_end(s);
        rdp_send_data(s, RDP_DATA_PDU_UPDATE);