Diff for /embedaddon/rsync/token.c between versions 1.1 and 1.1.1.3

version 1.1, 2012/02/17 15:09:30 version 1.1.1.3, 2016/11/01 09:54:32
Line 3 Line 3
  *   *
  * Copyright (C) 1996 Andrew Tridgell   * Copyright (C) 1996 Andrew Tridgell
  * Copyright (C) 1996 Paul Mackerras   * Copyright (C) 1996 Paul Mackerras
 * Copyright (C) 2003-2009 Wayne Davison * Copyright (C) 2003-2015 Wayne Davison
  *   *
  * This program is free software; you can redistribute it and/or modify   * 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   * it under the terms of the GNU General Public License as published by
Line 20 Line 20
  */   */
   
 #include "rsync.h"  #include "rsync.h"
#include "ifuncs.h"#include "itypes.h"
#include "zlib/zlib.h"#include <zlib.h>
   
 extern int do_compression;  extern int do_compression;
   extern int protocol_version;
 extern int module_id;  extern int module_id;
 extern int def_compress_level;  extern int def_compress_level;
 extern char *skip_compress;  extern char *skip_compress;
Line 308  send_deflated_token(int f, int32 token, struct map_str Line 309  send_deflated_token(int f, int32 token, struct map_str
                                          Z_DEFLATED, -15, 8,                                           Z_DEFLATED, -15, 8,
                                          Z_DEFAULT_STRATEGY) != Z_OK) {                                           Z_DEFAULT_STRATEGY) != Z_OK) {
                                 rprintf(FERROR, "compression init failed\n");                                  rprintf(FERROR, "compression init failed\n");
                                exit_cleanup(RERR_STREAMIO);                                exit_cleanup(RERR_PROTOCOL);
                         }                          }
                         if ((obuf = new_array(char, OBUF_SIZE)) == NULL)                          if ((obuf = new_array(char, OBUF_SIZE)) == NULL)
                                 out_of_memory("send_deflated_token");                                  out_of_memory("send_deflated_token");
Line 401  send_deflated_token(int f, int32 token, struct map_str Line 402  send_deflated_token(int f, int32 token, struct map_str
         if (token == -1) {          if (token == -1) {
                 /* end of file - clean up */                  /* end of file - clean up */
                 write_byte(f, END_FLAG);                  write_byte(f, END_FLAG);
        } else if (token != -2) {        } else if (token != -2 && do_compression == 1) {
                 /* Add the data in the current block to the compressor's                  /* Add the data in the current block to the compressor's
                  * history and hash table. */                   * history and hash table. */
   #ifndef EXTERNAL_ZLIB
                 do {                  do {
                         /* Break up long sections in the same way that                          /* Break up long sections in the same way that
                          * see_deflate_token() does. */                           * see_deflate_token() does. */
Line 411  send_deflated_token(int f, int32 token, struct map_str Line 413  send_deflated_token(int f, int32 token, struct map_str
                         toklen -= n1;                          toklen -= n1;
                         tx_strm.next_in = (Bytef *)map_ptr(buf, offset, n1);                          tx_strm.next_in = (Bytef *)map_ptr(buf, offset, n1);
                         tx_strm.avail_in = n1;                          tx_strm.avail_in = n1;
                           if (protocol_version >= 31) /* Newer protocols avoid a data-duplicating bug */
                                   offset += n1;
                         tx_strm.next_out = (Bytef *) obuf;                          tx_strm.next_out = (Bytef *) obuf;
                         tx_strm.avail_out = AVAIL_OUT_SIZE(CHUNK_SIZE);                          tx_strm.avail_out = AVAIL_OUT_SIZE(CHUNK_SIZE);
                         r = deflate(&tx_strm, Z_INSERT_ONLY);                          r = deflate(&tx_strm, Z_INSERT_ONLY);
Line 420  send_deflated_token(int f, int32 token, struct map_str Line 424  send_deflated_token(int f, int32 token, struct map_str
                                 exit_cleanup(RERR_STREAMIO);                                  exit_cleanup(RERR_STREAMIO);
                         }                          }
                 } while (toklen > 0);                  } while (toklen > 0);
   #else
                   toklen++;
                   rprintf(FERROR, "Impossible error in external-zlib code (1).\n");
                   exit_cleanup(RERR_STREAMIO);
   #endif
         }          }
 }  }
   
Line 452  static int32 recv_deflated_token(int f, char **data) Line 461  static int32 recv_deflated_token(int f, char **data)
                                 rx_strm.zfree = NULL;                                  rx_strm.zfree = NULL;
                                 if (inflateInit2(&rx_strm, -15) != Z_OK) {                                  if (inflateInit2(&rx_strm, -15) != Z_OK) {
                                         rprintf(FERROR, "inflate init failed\n");                                          rprintf(FERROR, "inflate init failed\n");
                                        exit_cleanup(RERR_STREAMIO);                                        exit_cleanup(RERR_PROTOCOL);
                                 }                                  }
                                 if (!(cbuf = new_array(char, MAX_DATA_COUNT))                                  if (!(cbuf = new_array(char, MAX_DATA_COUNT))
                                     || !(dbuf = new_array(char, AVAIL_OUT_SIZE(CHUNK_SIZE))))                                      || !(dbuf = new_array(char, AVAIL_OUT_SIZE(CHUNK_SIZE))))
Line 570  static int32 recv_deflated_token(int f, char **data) Line 579  static int32 recv_deflated_token(int f, char **data)
  */   */
 static void see_deflate_token(char *buf, int32 len)  static void see_deflate_token(char *buf, int32 len)
 {  {
   #ifndef EXTERNAL_ZLIB
         int r;          int r;
         int32 blklen;          int32 blklen;
         unsigned char hdr[5];          unsigned char hdr[5];
Line 593  static void see_deflate_token(char *buf, int32 len) Line 603  static void see_deflate_token(char *buf, int32 len)
                         } else {                          } else {
                                 rx_strm.next_in = (Bytef *)buf;                                  rx_strm.next_in = (Bytef *)buf;
                                 rx_strm.avail_in = blklen;                                  rx_strm.avail_in = blklen;
                                   if (protocol_version >= 31) /* Newer protocols avoid a data-duplicating bug */
                                           buf += blklen;
                                 len -= blklen;                                  len -= blklen;
                                 blklen = 0;                                  blklen = 0;
                         }                          }
Line 605  static void see_deflate_token(char *buf, int32 len) Line 617  static void see_deflate_token(char *buf, int32 len)
                         exit_cleanup(RERR_STREAMIO);                          exit_cleanup(RERR_STREAMIO);
                 }                  }
         } while (len || rx_strm.avail_out == 0);          } while (len || rx_strm.avail_out == 0);
   #else
           buf++; len++;
           rprintf(FERROR, "Impossible error in external-zlib code (2).\n");
           exit_cleanup(RERR_STREAMIO);
   #endif
 }  }
   
 /**  /**
Line 644  int32 recv_token(int f, char **data) Line 661  int32 recv_token(int f, char **data)
  */   */
 void see_token(char *data, int32 toklen)  void see_token(char *data, int32 toklen)
 {  {
        if (do_compression)        if (do_compression == 1)
                 see_deflate_token(data, toklen);                  see_deflate_token(data, toklen);
 }  }

Removed from v.1.1  
changed lines
  Added in v.1.1.1.3


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>