X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/f7632fc60d69c8dabed600ede87f0b91319a3b7f..4c3b4b25573f0eed181107097c040afc3e0ac4e1:/generator.c diff --git a/generator.c b/generator.c index 06c1fa4b..d77e7b56 100644 --- a/generator.c +++ b/generator.c @@ -31,6 +31,7 @@ extern int whole_file; extern int block_size; extern int csum_length; extern int ignore_times; +extern int size_only; extern int io_timeout; extern int remote_version; extern int always_checksum; @@ -52,6 +53,10 @@ static int skip_file(char *fname, return (memcmp(sum,file->sum,csum_length) == 0); } + if (size_only) { + return 1; + } + if (ignore_times) { return 0; } @@ -177,7 +182,7 @@ void recv_generator(char *fname,struct file_list *flist,int i,int f_out) if (S_ISDIR(file->mode)) { if (dry_run) return; if (statret == 0 && !S_ISDIR(st.st_mode)) { - if (do_unlink(fname) != 0) { + if (robust_unlink(fname) != 0) { rprintf(FERROR,"unlink %s : %s\n",fname,strerror(errno)); return; } @@ -273,7 +278,7 @@ void recv_generator(char *fname,struct file_list *flist,int i,int f_out) if ((statret == -1) && (compare_dest != NULL)) { /* try the file at compare_dest instead */ int saveerrno = errno; - slprintf(fnamecmpbuf,MAXPATHLEN-1,"%s/%s",compare_dest,fname); + slprintf(fnamecmpbuf,MAXPATHLEN,"%s/%s",compare_dest,fname); statret = link_stat(fnamecmpbuf,&st); if (!S_ISREG(st.st_mode)) statret = -1; @@ -312,7 +317,8 @@ void recv_generator(char *fname,struct file_list *flist,int i,int f_out) } if (skip_file(fname, file, &st)) { - set_perms(fname,file,&st,1); + if (fnamecmp == fname) + set_perms(fname,file,&st,1); return; }