/[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 678 by jsorg71, Mon Apr 26 22:31:22 2004 UTC revision 683 by n-ki, Tue Apr 27 12:55:33 2004 UTC
# Line 38  extern BOOL g_bitmap_cache; Line 38  extern BOOL g_bitmap_cache;
38  uint8 *g_next_packet;  uint8 *g_next_packet;
39  uint32 g_rdp_shareid;  uint32 g_rdp_shareid;
40    
41    extern RDPCOMP 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 176  rdp_send_logon_info(uint32 flags, char *
176          time_t t = time(NULL);          time_t t = time(NULL);
177          time_t tzone;          time_t tzone;
178    
 #if 0  
         // enable rdp compression  
         flags |= RDP_COMPRESSION;  
 #endif  
   
179          if (!g_use_rdp5 || 1 == g_server_rdp_version)          if (!g_use_rdp5 || 1 == g_server_rdp_version)
180          {          {
181                  DEBUG_RDP5(("Sending RDP4-style Logon packet\n"));                  DEBUG_RDP5(("Sending RDP4-style Logon packet\n"));
182    
183    #if 0
184                    /* enable rdp compression */
185                    /* decompression also works with rdp5 */
186                    /* but there are some unknown opcodes */
187                    flags |= RDP_COMPRESSION;
188    #endif
189                  s = sec_init(sec_flags, 18 + len_domain + len_user + len_password                  s = sec_init(sec_flags, 18 + len_domain + len_user + len_password
190                               + len_program + len_directory + 10);                               + len_program + len_directory + 10);
191    
# Line 201  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 437  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] = (g_bitmap_cache ? 1 : 0); /* 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 954  process_data_pdu(STREAM s, uint32 * ext_ Line 958  process_data_pdu(STREAM s, uint32 * ext_
958          uint8 data_pdu_type;          uint8 data_pdu_type;
959          uint8 ctype;          uint8 ctype;
960          uint16 clen;          uint16 clen;
961          int len;          uint32 len;
962  #if 0  
963          int roff, rlen, ret;          uint32 roff, rlen;
964          static struct stream ns;  
965          static signed char *dict = 0;          struct stream *ns = &(mppc_dict.ns);
966  #endif          uint8 *dict = (mppc_dict.hist);
967    
968          in_uint8s(s, 6);        /* shareid, pad, streamid */          in_uint8s(s, 6);        /* shareid, pad, streamid */
969          in_uint16(s, len);          in_uint16(s, len);
# Line 968  process_data_pdu(STREAM s, uint32 * ext_ Line 972  process_data_pdu(STREAM s, uint32 * ext_
972          in_uint16(s, clen);          in_uint16(s, clen);
973          clen -= 18;          clen -= 18;
974    
975  #if 0          if (ctype & RDP_MPPC_COMPRESSED)
         if (ctype & 0x20)  
976          {          {
                 if (!dict)  
                 {  
                         dict = (signed char *) malloc(8200 * sizeof(signed char));  
                         dict = (signed char *) memset(dict, 0, 8200 * sizeof(signed char));  
                 }  
977    
978                  ret = decompress(s->p, clen, ctype, (signed char *) dict, &roff, &rlen);                  if (mppc_expand(s->p, clen, ctype, &roff, &rlen) == -1)
979                            error("error while decompressing packet\n");
980    
981                  len -= 18;                  len -= 18;
982    
983                  ns.data = xrealloc(ns.data, len);                  /* this should never happen */
984                    if (len != rlen)
985                            error("decompression error len != rlen\n");
986    
987                  ns.data = (unsigned char *) memcpy(ns.data, (unsigned char *) (dict + roff), len);                  /* allocate memory and copy the uncompressed data into the temporary stream */
988                    ns->data = xrealloc(ns->data, len);
989    
990                  ns.size = len;                  memcpy((ns->data), (unsigned char *) (mppc_dict.hist + roff), len);
                 ns.end = ns.data + ns.size;  
                 ns.p = ns.data;  
                 ns.rdp_hdr = ns.p;  
991    
992                  s = &ns;                  ns->size = len;
993                    ns->end = (ns->data + ns->size);
994                    ns->p = ns->data;
995                    ns->rdp_hdr = ns->p;
996    
997                    s = ns;
998          }          }
 #endif  
999    
1000          switch (data_pdu_type)          switch (data_pdu_type)
1001          {          {

Legend:
Removed from v.678  
changed lines
  Added in v.683

  ViewVC Help
Powered by ViewVC 1.1.26