/[rdesktop]/sourceforge.net/trunk/rdesktop/rdp.c
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /sourceforge.net/trunk/rdesktop/rdp.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 733 by jsorg71, Mon Jul 5 19:09:07 2004 UTC revision 828 by stargo, Sun Mar 6 21:11:18 2005 UTC
# Line 1  Line 1 
1  /* -*- c-basic-offset: 8 -*-  /* -*- c-basic-offset: 8 -*-
2     rdesktop: A Remote Desktop Protocol client.     rdesktop: A Remote Desktop Protocol client.
3     Protocol services - RDP layer     Protocol services - RDP layer
4     Copyright (C) Matthew Chapman 1999-2002     Copyright (C) Matthew Chapman 1999-2005
5    
6     This program is free software; you can redistribute it and/or modify     This program is free software; you can redistribute it and/or modify
7     it under the terms of the GNU General Public License as published by     it under the terms of the GNU General Public License as published by
# Line 58  rdp_recv(uint8 * type) Line 58  rdp_recv(uint8 * type)
58                  rdp_s = sec_recv(&rdpver);                  rdp_s = sec_recv(&rdpver);
59                  if (rdp_s == NULL)                  if (rdp_s == NULL)
60                          return NULL;                          return NULL;
61                  if (rdpver != 3)                  if (rdpver == 0xff)
62                    {
63                            g_next_packet = rdp_s->end;
64                            *type = 0;
65                            return rdp_s;
66                    }
67                    else if (rdpver != 3)
68                  {                  {
69                          /* rdp5_process should move g_next_packet ok */                          /* rdp5_process should move g_next_packet ok */
70                          rdp5_process(rdp_s);                          rdp5_process(rdp_s);
# Line 410  rdp_enum_bmpcache2(void) Line 416  rdp_enum_bmpcache2(void)
416                  out_uint32_le(s, flags);                  out_uint32_le(s, flags);
417    
418                  /* list */                  /* list */
419                  out_uint8a(s, idlist + offset * sizeof(BITMAP_ID),                  out_uint8a(s, idlist + offset * sizeof(BITMAP_ID), count * sizeof(BITMAP_ID));
                                 count * sizeof(BITMAP_ID));  
420    
421                  s_mark_end(s);                  s_mark_end(s);
422                  rdp_send_data(s, 0x2b);                  rdp_send_data(s, 0x2b);
# Line 561  rdp_out_bmpcache2_caps(STREAM s) Line 566  rdp_out_bmpcache2_caps(STREAM s)
566          {          {
567                  out_uint32_le(s, BMPCACHE2_C2_CELLS);                  out_uint32_le(s, BMPCACHE2_C2_CELLS);
568          }          }
569          out_uint8s(s, 20);              /* other bitmap caches not used */          out_uint8s(s, 20);      /* other bitmap caches not used */
570  }  }
571    
572  /* Output control capability set */  /* Output control capability set */
# Line 652  static uint8 caps_0x10[] = { Line 657  static uint8 caps_0x10[] = {
657    
658  /* Output unknown capability sets */  /* Output unknown capability sets */
659  static void  static void
660  rdp_out_unknown_caps(STREAM s, uint16 id, uint16 length, uint8 *caps)  rdp_out_unknown_caps(STREAM s, uint16 id, uint16 length, uint8 * caps)
661  {  {
662          out_uint16_le(s, id);          out_uint16_le(s, id);
663          out_uint16_le(s, length);          out_uint16_le(s, length);
# Line 672  rdp_send_confirm_active(void) Line 677  rdp_send_confirm_active(void)
677                  RDP_CAPLEN_BMPCACHE + RDP_CAPLEN_COLCACHE +                  RDP_CAPLEN_BMPCACHE + RDP_CAPLEN_COLCACHE +
678                  RDP_CAPLEN_ACTIVATE + RDP_CAPLEN_CONTROL +                  RDP_CAPLEN_ACTIVATE + RDP_CAPLEN_CONTROL +
679                  RDP_CAPLEN_POINTER + RDP_CAPLEN_SHARE +                  RDP_CAPLEN_POINTER + RDP_CAPLEN_SHARE +
680                  0x58 + 0x08 + 0x08 + 0x34 /* unknown caps */ +                  0x58 + 0x08 + 0x08 + 0x34 /* unknown caps */  +
681                  4 /* w2k fix, why? */ ;                  4 /* w2k fix, why? */ ;
682    
683          s = sec_init(sec_flags, 6 + 14 + caplen + sizeof(RDP_SOURCE));          s = sec_init(sec_flags, 6 + 14 + caplen + sizeof(RDP_SOURCE));
# Line 700  rdp_send_confirm_active(void) Line 705  rdp_send_confirm_active(void)
705          rdp_out_pointer_caps(s);          rdp_out_pointer_caps(s);
706          rdp_out_share_caps(s);          rdp_out_share_caps(s);
707    
708          rdp_out_unknown_caps(s, 0x0d, 0x58, caps_0x0d); /* international? */          rdp_out_unknown_caps(s, 0x0d, 0x58, caps_0x0d); /* international? */
709          rdp_out_unknown_caps(s, 0x0c, 0x08, caps_0x0c);          rdp_out_unknown_caps(s, 0x0c, 0x08, caps_0x0c);
710          rdp_out_unknown_caps(s, 0x0e, 0x08, caps_0x0e);          rdp_out_unknown_caps(s, 0x0e, 0x08, caps_0x0e);
711          rdp_out_unknown_caps(s, 0x10, 0x34, caps_0x10); /* glyph cache? */          rdp_out_unknown_caps(s, 0x10, 0x34, caps_0x10); /* glyph cache? */
712                                    
713          s_mark_end(s);          s_mark_end(s);
714          sec_send(s, sec_flags);          sec_send(s, sec_flags);
715  }  }
# Line 748  rdp_process_bitmap_caps(STREAM s) Line 753  rdp_process_bitmap_caps(STREAM s)
753          if (g_width != width || g_height != height)          if (g_width != width || g_height != height)
754          {          {
755                  warning("screen size changed from %dx%d to %dx%d\n", g_width, g_height,                  warning("screen size changed from %dx%d to %dx%d\n", g_width, g_height,
756                                  width, height);                          width, height);
757                  g_width = width;                  g_width = width;
758                  g_height = height;                  g_height = height;
759                  ui_resize_window();                  ui_resize_window();
# Line 1086  process_data_pdu(STREAM s, uint32 * ext_ Line 1091  process_data_pdu(STREAM s, uint32 * ext_
1091    
1092          if (ctype & RDP_MPPC_COMPRESSED)          if (ctype & RDP_MPPC_COMPRESSED)
1093          {          {
1094                    if (len > RDP_MPPC_DICT_SIZE)
1095                            error("error decompressed packet size exceeds max\n");
1096                  if (mppc_expand(s->p, clen, ctype, &roff, &rlen) == -1)                  if (mppc_expand(s->p, clen, ctype, &roff, &rlen) == -1)
1097                          error("error while decompressing packet\n");                          error("error while decompressing packet\n");
1098    

Legend:
Removed from v.733  
changed lines
  Added in v.828

  ViewVC Help
Powered by ViewVC 1.1.26