int ac = *argc;
static char argstr[50];
static char bsize[30];
- static char slength[30];
int i, x;
args[ac++] = "--server";
argstr[x++] = 'x';
if (sparse_files)
argstr[x++] = 'S';
+ if (do_compression)
+ argstr[x++] = 'z';
argstr[x] = 0;
if (x != 1) args[ac++] = argstr;
args[ac++] = bsize;
}
- if (csum_length != SUM_LENGTH) {
- sprintf(slength,"--csum-length=%d",csum_length);
- args[ac++] = slength;
- }
-
if (delete_mode)
args[ac++] = "--delete";
{
int pid;
int status=0;
+ int recv_pipe[2];
if (preserve_hard_links)
init_hard_links(flist);
+ if (pipe(recv_pipe) < 0) {
+ fprintf(FERROR,"pipe failed in do_recv\n");
+ exit(1);
+ }
+
+
if ((pid=fork()) == 0) {
- recv_files(f_in,flist,local_name);
+ recv_files(f_in,flist,local_name,recv_pipe[1]);
if (preserve_hard_links)
do_hard_links(flist);
if (verbose > 2)
exit_cleanup(0);
}
- generate_files(f_out,flist,local_name);
+ generate_files(f_out,flist,local_name,recv_pipe[0]);
waitpid(pid, &status, 0);
fprintf(f,"-C, --cvs-exclude auto ignore files in the same way CVS does\n");
fprintf(f," --delete delete files that don't exist on the sending side\n");
fprintf(f,"-I, --ignore-times don't exclude files that match length and time\n");
+ fprintf(f,"-z, --compress compress file data\n");
fprintf(f," --exclude FILE exclude file FILE\n");
fprintf(f," --exclude-from FILE exclude files listed in FILE\n");
fprintf(f," --suffix SUFFIX override backup suffix\n");
}
enum {OPT_VERSION,OPT_SUFFIX,OPT_SENDER,OPT_SERVER,OPT_EXCLUDE,
- OPT_EXCLUDE_FROM,OPT_DELETE,OPT_RSYNC_PATH,OPT_CSUM_LENGTH};
+ OPT_EXCLUDE_FROM,OPT_DELETE,OPT_RSYNC_PATH};
-static char *short_options = "oblHpguDCtcahvrIxnSe:B:";
+static char *short_options = "oblHpguDCtcahvrIxnSe:B:z";
static struct option long_options[] = {
{"version", 0, 0, OPT_VERSION},
{"exclude", 1, 0, OPT_EXCLUDE},
{"exclude-from",1, 0, OPT_EXCLUDE_FROM},
{"rsync-path", 1, 0, OPT_RSYNC_PATH},
- {"csum-length", 1, 0, OPT_CSUM_LENGTH},
{"one-file-system",0, 0, 'x'},
{"ignore-times",0, 0, 'I'},
{"help", 0, 0, 'h'},
{"rsh", 1, 0, 'e'},
{"suffix", 1, 0, OPT_SUFFIX},
{"block-size", 1, 0, 'B'},
+ {"compress", 0, 0, 'z'},
{0,0,0,0}};
int main(int argc,char *argv[])
starttime = time(NULL);
- checksum_init();
-
while ((opt = getopt_long(argc, argv,
short_options, long_options, &option_index))
!= -1) {
rsync_path = optarg;
break;
- case OPT_CSUM_LENGTH:
- csum_length = atoi(optarg);
- csum_length = MIN(csum_length,SUM_LENGTH);
- break;
-
case 'I':
ignore_times = 1;
break;
block_size = atoi(optarg);
break;
+ case 'z':
+ do_compression = 1;
+ break;
+
default:
- fprintf(FERROR,"bad option -%c\n",opt);
+ /* fprintf(FERROR,"bad option -%c\n",opt); */
exit_cleanup(1);
}
}