/[rdesktop]/jpeg/rdesktop/trunk/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 /jpeg/rdesktop/trunk/rdp.c

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

revision 677 by n-ki, Mon Apr 26 13:48:39 2004 UTC revision 711 by jsorg71, Tue Jun 15 22:45:12 2004 UTC
# Line 33  extern uint32 g_rdp5_performanceflags; Line 33  extern uint32 g_rdp5_performanceflags;
33  extern int g_server_bpp;  extern int g_server_bpp;
34  extern int g_width;  extern int g_width;
35  extern int g_height;  extern int g_height;
36    extern BOOL g_bitmap_cache;
37    
38  uint8 *g_next_packet;  uint8 *g_next_packet;
39  uint32 g_rdp_shareid;  uint32 g_rdp_shareid;
40    
41    extern RDPCOMP g_mppc_dict;
42    
43  #if WITH_DEBUG  #if WITH_DEBUG
44  static uint32 g_packetno;  static uint32 g_packetno;
45  #endif  #endif
# Line 174  rdp_send_logon_info(uint32 flags, char * Line 177  rdp_send_logon_info(uint32 flags, char *
177          time_t tzone;          time_t tzone;
178    
179  #if 0  #if 0
180          // enable rdp compression          /* enable rdp compression */
181            /* some problems still exist with rdp5 */
182          flags |= RDP_COMPRESSION;          flags |= RDP_COMPRESSION;
183  #endif  #endif
184    
# Line 200  rdp_send_logon_info(uint32 flags, char * Line 204  rdp_send_logon_info(uint32 flags, char *
204          }          }
205          else          else
206          {          {
207    
208                  flags |= RDP_LOGON_BLOB;                  flags |= RDP_LOGON_BLOB;
209                  DEBUG_RDP5(("Sending RDP5-style Logon packet\n"));                  DEBUG_RDP5(("Sending RDP5-style Logon packet\n"));
210                  packetlen = 4 + /* Unknown uint32 */                  packetlen = 4 + /* Unknown uint32 */
# Line 436  rdp_out_order_caps(STREAM s) Line 441  rdp_out_order_caps(STREAM s)
441          order_caps[0] = 1;      /* dest blt */          order_caps[0] = 1;      /* dest blt */
442          order_caps[1] = 1;      /* pat blt */          order_caps[1] = 1;      /* pat blt */
443          order_caps[2] = 1;      /* screen blt */          order_caps[2] = 1;      /* screen blt */
444          order_caps[3] = 1;      /* required for memblt? */          order_caps[3] = (g_bitmap_cache ? 1 : 0);       /* memblt */
445          order_caps[8] = 1;      /* line */          order_caps[8] = 1;      /* line */
446          order_caps[9] = 1;      /* line */          order_caps[9] = 1;      /* line */
447          order_caps[10] = 1;     /* rect */          order_caps[10] = 1;     /* rect */
# Line 646  rdp_process_bitmap_caps(STREAM s) Line 651  rdp_process_bitmap_caps(STREAM s)
651           * The server may limit bpp and change the size of the desktop (for           * The server may limit bpp and change the size of the desktop (for
652           * example when shadowing another session).           * example when shadowing another session).
653           */           */
654          g_server_bpp = bpp;          if (g_server_bpp != bpp)
655          g_width = width;          {
656          g_height = height;                  warning("colour depth changed from %d to %d\n", g_server_bpp, bpp);
657                    g_server_bpp = bpp;
658          ui_resize_window();          }
659            if (g_width != width || g_height != height)
660            {
661                    warning("screen size changed from %dx%d to %dx%d\n", g_width, g_height,
662                                    width, height);
663                    g_width = width;
664                    g_height = height;
665                    ui_resize_window();
666            }
667  }  }
668    
669  /* Respond to a demand active PDU */  /* Respond to a demand active PDU */
# Line 953  process_data_pdu(STREAM s, uint32 * ext_ Line 966  process_data_pdu(STREAM s, uint32 * ext_
966          uint8 data_pdu_type;          uint8 data_pdu_type;
967          uint8 ctype;          uint8 ctype;
968          uint16 clen;          uint16 clen;
969          int len;          uint32 len;
970  #if 0  
971          int roff, rlen, ret;          uint32 roff, rlen;
972          static struct stream ns;  
973          static signed char *dict = 0;          struct stream *ns = &(g_mppc_dict.ns);
 #endif  
974    
975          in_uint8s(s, 6);        /* shareid, pad, streamid */          in_uint8s(s, 6);        /* shareid, pad, streamid */
976          in_uint16(s, len);          in_uint16(s, len);
# Line 967  process_data_pdu(STREAM s, uint32 * ext_ Line 979  process_data_pdu(STREAM s, uint32 * ext_
979          in_uint16(s, clen);          in_uint16(s, clen);
980          clen -= 18;          clen -= 18;
981    
982  #if 0          if (ctype & RDP_MPPC_COMPRESSED)
         if (ctype & 0x20)  
983          {          {
                 if (!dict)  
                 {  
                         dict = (signed char *) malloc(8200 * sizeof(signed char));  
                         dict = (signed char *) memset(dict, 0, 8200 * sizeof(signed char));  
                 }  
984    
985                  ret = decompress(s->p, clen, ctype, (signed char *) dict, &roff, &rlen);                  if (mppc_expand(s->p, clen, ctype, &roff, &rlen) == -1)
986                            error("error while decompressing packet\n");
987    
988                  len -= 18;                  //len -= 18;
989    
990                  ns.data = xrealloc(ns.data, len);                  /* allocate memory and copy the uncompressed data into the temporary stream */
991                    ns->data = (uint8 *) xrealloc(ns->data, rlen);
992    
993                  ns.data = (unsigned char *) memcpy(ns.data, (unsigned char *) (dict + roff), len);                  memcpy((ns->data), (unsigned char *) (g_mppc_dict.hist + roff), rlen);
994    
995                  ns.size = len;                  ns->size = rlen;
996                  ns.end = ns.data + ns.size;                  ns->end = (ns->data + ns->size);
997                  ns.p = ns.data;                  ns->p = ns->data;
998                  ns.rdp_hdr = ns.p;                  ns->rdp_hdr = ns->p;
999    
1000                  s = &ns;                  s = ns;
1001          }          }
 #endif  
1002    
1003          switch (data_pdu_type)          switch (data_pdu_type)
1004          {          {

Legend:
Removed from v.677  
changed lines
  Added in v.711

  ViewVC Help
Powered by ViewVC 1.1.26