--- sourceforge.net/trunk/rdesktop/rdp5.c 2003/06/06 10:48:38 411 +++ sourceforge.net/trunk/rdesktop/rdp5.c 2003/07/09 09:18:20 435 @@ -24,15 +24,15 @@ extern uint8 *next_packet; void -rdp5_process(STREAM s, BOOL encryption, BOOL shortform) +rdp5_process(STREAM s, BOOL encryption) { - uint16 length, count; + uint16 length, count, x, y; uint8 type; uint8 *next; if (encryption) { - in_uint8s(s, shortform ? 6 : 7 /* XXX HACK */ ); /* signature */ + in_uint8s(s, 8); /* signature */ sec_decrypt(s->p, s->end - s->p); } @@ -49,6 +49,10 @@ switch (type) { + /* Thanks to Jeroen Meijer for finding out the meaning of + most of the opcodes here. Especially opcode + 8! :) */ case 0: /* orders */ in_uint16_le(s, count); process_orders(s, count); @@ -66,6 +70,12 @@ case 5: process_null_system_pointer_pdu(s); break; + case 8: + in_uint16_le(s, x); + in_uint16_le(s, y); + if (s_check(s)) + ui_move_pointer(x, y); + break; case 9: process_colour_pointer_pdu(s); break; @@ -79,14 +89,3 @@ s->p = next; } } - -void -rdp5_process_channel(STREAM s, uint16 channelno) -{ - rdp5_channel *channel; - channel = find_channel_by_channelno(channelno); - if (NULL != channel) - { - channel->channelcallback(s, channelno); - } -}