X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/3cb6f5d6cbe2b1fead0453ffb31488c2ffc2def2..5fb543d5879ec3ad8f3e68a92b1766ece1b8326a:/rsync.c diff --git a/rsync.c b/rsync.c index 34c85f49..3b4ff1ba 100644 --- a/rsync.c +++ b/rsync.c @@ -302,21 +302,24 @@ static int set_perms(char *fname,struct file_struct *file,struct stat *st, if ((am_root && preserve_uid && st->st_uid != file->uid) || (preserve_gid && st->st_gid != file->gid)) { - updated = 1; - if (do_lchown(fname, - (am_root&&preserve_uid)?file->uid:-1, - preserve_gid?file->gid:-1) != 0) { - if (verbose>1 || preserve_uid) - fprintf(FERROR,"chown %s : %s\n",fname,strerror(errno)); - return updated; - } + if (do_lchown(fname, + (am_root&&preserve_uid)?file->uid:-1, + preserve_gid?file->gid:-1) != 0) { + if (preserve_uid && st->st_uid != file->uid) + updated = 1; + if (verbose>1 || preserve_uid) + fprintf(FERROR,"chown %s : %s\n", + fname,strerror(errno)); + return updated; + } + updated = 1; } if (verbose > 1 && report) { - if (updated) - fprintf(FINFO,"%s\n",fname); - else - fprintf(FINFO,"%s is uptodate\n",fname); + if (updated) + fprintf(FINFO,"%s\n",fname); + else + fprintf(FINFO,"%s is uptodate\n",fname); } return updated; } @@ -929,14 +932,13 @@ int recv_files(int f_in,struct file_list *flist,char *local_name,int f_gen) -off_t send_files(struct file_list *flist,int f_out,int f_in) +void send_files(struct file_list *flist,int f_out,int f_in) { int fd; struct sum_struct *s; struct map_struct *buf; struct stat st; char fname[MAXPATHLEN]; - off_t total=0; int i; struct file_struct *file; int phase = 0; @@ -971,7 +973,7 @@ off_t send_files(struct file_list *flist,int f_out,int f_in) if (strlen(fname) == MAXPATHLEN-1) { fprintf(FERROR, "send_files failed on long-named directory %s\n", fname); - return -1; + return; } strcat(fname,"/"); offset = strlen(file->basedir)+1; @@ -991,7 +993,7 @@ off_t send_files(struct file_list *flist,int f_out,int f_in) s = receive_sums(f_in); if (!s) { fprintf(FERROR,"receive_sums failed\n"); - return -1; + return; } fd = open(fname,O_RDONLY); @@ -1007,7 +1009,7 @@ off_t send_files(struct file_list *flist,int f_out,int f_in) fprintf(FERROR,"fstat failed : %s\n",strerror(errno)); free_sums(s); close(fd); - return -1; + return; } if (st.st_size > 0) { @@ -1042,8 +1044,6 @@ off_t send_files(struct file_list *flist,int f_out,int f_in) if (verbose > 2) fprintf(FERROR,"sender finished %s\n",fname); - - total += st.st_size; } if (verbose > 2) @@ -1053,8 +1053,6 @@ off_t send_files(struct file_list *flist,int f_out,int f_in) write_int(f_out,-1); write_flush(f_out); - - return total; }