71 |
|
|
72 |
#if WITH_DEBUG |
#if WITH_DEBUG |
73 |
DEBUG(("RDP packet #%d, (type %x)\n", ++g_packetno, *type)); |
DEBUG(("RDP packet #%d, (type %x)\n", ++g_packetno, *type)); |
74 |
// hexdump(g_next_packet, length); |
hexdump(g_next_packet, length); |
75 |
#endif /* */ |
#endif /* */ |
76 |
|
|
77 |
g_next_packet += length; |
g_next_packet += length; |
607 |
reset_order_state(); |
reset_order_state(); |
608 |
} |
} |
609 |
|
|
|
/* Process a null system pointer PDU */ |
|
|
void |
|
|
process_null_system_pointer_pdu(STREAM s) |
|
|
{ |
|
|
// FIXME: We should probably set another cursor here, |
|
|
// like the X window system base cursor or something. |
|
|
ui_set_cursor(cache_get_cursor(0)); |
|
|
} |
|
|
|
|
610 |
/* Process a colour pointer PDU */ |
/* Process a colour pointer PDU */ |
611 |
void |
void |
612 |
process_colour_pointer_pdu(STREAM s) |
process_colour_pointer_pdu(STREAM s) |
639 |
ui_set_cursor(cache_get_cursor(cache_idx)); |
ui_set_cursor(cache_get_cursor(cache_idx)); |
640 |
} |
} |
641 |
|
|
642 |
|
/* Process a system pointer PDU */ |
643 |
|
void |
644 |
|
process_system_pointer_pdu(STREAM s) |
645 |
|
{ |
646 |
|
uint16 system_pointer_type; |
647 |
|
|
648 |
|
in_uint16(s, system_pointer_type); |
649 |
|
switch (system_pointer_type) |
650 |
|
{ |
651 |
|
case RDP_NULL_POINTER: |
652 |
|
ui_set_null_cursor(); |
653 |
|
break; |
654 |
|
|
655 |
|
default: |
656 |
|
unimpl("System pointer message 0x%x\n", system_pointer_type); |
657 |
|
} |
658 |
|
} |
659 |
|
|
660 |
/* Process a pointer PDU */ |
/* Process a pointer PDU */ |
661 |
static void |
static void |
684 |
process_cached_pointer_pdu(s); |
process_cached_pointer_pdu(s); |
685 |
break; |
break; |
686 |
|
|
687 |
|
case RDP_POINTER_SYSTEM: |
688 |
|
process_system_pointer_pdu(s); |
689 |
|
break; |
690 |
|
|
691 |
default: |
default: |
692 |
DEBUG(("Pointer message 0x%x\n", message_type)); |
unimpl("Pointer message 0x%x\n", message_type); |
693 |
} |
} |
694 |
} |
} |
695 |
|
|
724 |
DEBUG(("BITMAP_UPDATE(l=%d,t=%d,r=%d,b=%d,w=%d,h=%d,Bpp=%d,cmp=%d)\n", |
DEBUG(("BITMAP_UPDATE(l=%d,t=%d,r=%d,b=%d,w=%d,h=%d,Bpp=%d,cmp=%d)\n", |
725 |
left, top, right, bottom, width, height, Bpp, compress)); |
left, top, right, bottom, width, height, Bpp, compress)); |
726 |
|
|
727 |
|
/* Server may limit bpp - this is how we find out */ |
728 |
|
if (g_server_bpp != bpp) { |
729 |
|
warning("Server limited colour depth to %d bits\n", bpp); |
730 |
|
g_server_bpp = bpp; |
731 |
|
} |
732 |
|
|
733 |
if (!compress) |
if (!compress) |
734 |
{ |
{ |
735 |
int y; |
int y; |
864 |
/* User logged on */ |
/* User logged on */ |
865 |
break; |
break; |
866 |
|
|
867 |
|
case RDP_DATA_PDU_DISCONNECT: |
868 |
|
/* Normally received when user logs out or disconnects from a |
869 |
|
console session on Windows XP and 2003 Server */ |
870 |
|
DEBUG(("Received disconnect PDU\n")); |
871 |
|
break; |
872 |
|
|
873 |
default: |
default: |
874 |
unimpl("data PDU %d\n", data_pdu_type); |
unimpl("data PDU %d\n", data_pdu_type); |
875 |
} |
} |