summaryrefslogtreecommitdiffstats
path: root/uirdesktop/rdp5.c
diff options
context:
space:
mode:
Diffstat (limited to 'uirdesktop/rdp5.c')
-rw-r--r--uirdesktop/rdp5.c121
1 files changed, 0 insertions, 121 deletions
diff --git a/uirdesktop/rdp5.c b/uirdesktop/rdp5.c
deleted file mode 100644
index 78d97168..00000000
--- a/uirdesktop/rdp5.c
+++ /dev/null
@@ -1,121 +0,0 @@
-/* -*- c-basic-offset: 8 -*-
- rdesktop: A Remote Desktop Protocol client.
- Protocol services - RDP5 short form PDU processing
- Copyright (C) Matthew Chapman 1999-2005
- Copyright (C) Erik Forsberg 2003
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*/
-
-#include "rdesktop.h"
-
-extern uint8 *g_next_packet;
-
-extern RDPCOMP g_mppc_dict;
-
-void
-rdp5_process(STREAM s)
-{
- uint16 length, count, x, y;
- uint8 type, ctype;
- uint8 *next;
-
- uint32 roff, rlen;
- struct stream *ns = &(g_mppc_dict.ns);
- struct stream *ts;
-
-#if 0
- printf("RDP5 data:\n");
- hexdump(s->p, s->end - s->p);
-#endif
-
- ui_begin_update();
- while (s->p < s->end)
- {
- in_uint8(s, type);
- if (type & RDP5_COMPRESSED)
- {
- in_uint8(s, ctype);
- in_uint16_le(s, length);
- type ^= RDP5_COMPRESSED;
- }
- else
- {
- ctype = 0;
- in_uint16_le(s, length);
- }
- g_next_packet = next = s->p + length;
-
- if (ctype & RDP_MPPC_COMPRESSED)
- {
- if (mppc_expand(s->p, length, ctype, &roff, &rlen) == -1)
- error("error while decompressing packet\n");
-
- /* allocate memory and copy the uncompressed data into the temporary stream */
- ns->data = (uint8 *) xrealloc(ns->data, rlen);
-
- memcpy((ns->data), (unsigned char *) (g_mppc_dict.hist + roff), rlen);
-
- ns->size = rlen;
- ns->end = (ns->data + ns->size);
- ns->p = ns->data;
- ns->rdp_hdr = ns->p;
-
- ts = ns;
- }
- else
- ts = s;
-
- switch (type)
- {
- case 0: /* update orders */
- in_uint16_le(ts, count);
- process_orders(ts, count);
- break;
- case 1: /* update bitmap */
- in_uint8s(ts, 2); /* part length */
- process_bitmap_updates(ts);
- break;
- case 2: /* update palette */
- in_uint8s(ts, 2); /* uint16 = 2 */
- process_palette(ts);
- break;
- case 3: /* update synchronize */
- break;
- case 5: /* null pointer */
- ui_set_null_cursor();
- break;
- case 6: /* default pointer */
- break;
- case 8: /* pointer position */
- in_uint16_le(ts, x);
- in_uint16_le(ts, y);
- if (s_check(ts))
- ui_move_pointer(x, y);
- break;
- case 9: /* color pointer */
- process_colour_pointer_pdu(ts);
- break;
- case 10: /* cached pointer */
- process_cached_pointer_pdu(ts);
- break;
- default:
- unimpl("RDP5 opcode %d\n", type);
- }
-
- s->p = next;
- }
- ui_end_update();
-}