X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/5e58e3f9cf3db5c3958fe6505eb59a2f814887fb..65854cf91aacc104c0bda62ba4646f2057cd0bb4:/rsync.c diff --git a/rsync.c b/rsync.c index d78a085e..661f9904 100644 --- a/rsync.c +++ b/rsync.c @@ -49,9 +49,8 @@ void free_sums(struct sum_struct *s) free(s); } - -int set_perms(char *fname,struct file_struct *file,STRUCT_STAT *st, - int flags) +int set_file_attrs(char *fname, struct file_struct *file, STRUCT_STAT *st, + int flags) { int updated = 0; STRUCT_STAT st2; @@ -69,8 +68,8 @@ int set_perms(char *fname,struct file_struct *file,STRUCT_STAT *st, } if (!preserve_times || (S_ISDIR(st->st_mode) && omit_dir_times)) - flags |= PERMS_SKIP_MTIME; - if (!(flags & PERMS_SKIP_MTIME) + flags |= ATTRS_SKIP_MTIME; + if (!(flags & ATTRS_SKIP_MTIME) && cmp_modtime(st->st_mtime, file->modtime) != 0) { int ret = set_modtime(fname, file->modtime, st->st_mode); if (ret < 0) { @@ -82,9 +81,9 @@ int set_perms(char *fname,struct file_struct *file,STRUCT_STAT *st, updated = 1; } - change_uid = am_root && preserve_uid && st->st_uid != file->ids->uid; - change_gid = preserve_gid && file->ids->gid != GID_NONE - && st->st_gid != file->ids->gid; + change_uid = am_root && preserve_uid && st->st_uid != file->uid; + change_gid = preserve_gid && file->gid != GID_NONE + && st->st_gid != file->gid; #if !defined HAVE_LCHOWN && !defined CHOWN_MODIFIES_SYMLINK if (S_ISLNK(st->st_mode)) ; @@ -96,18 +95,18 @@ int set_perms(char *fname,struct file_struct *file,STRUCT_STAT *st, rprintf(FINFO, "set uid of %s from %ld to %ld\n", fname, - (long)st->st_uid, (long)file->ids->uid); + (long)st->st_uid, (long)file->uid); } if (change_gid) { rprintf(FINFO, "set gid of %s from %ld to %ld\n", fname, - (long)st->st_gid, (long)file->ids->gid); + (long)st->st_gid, (long)file->gid); } } if (do_lchown(fname, - change_uid ? file->ids->uid : st->st_uid, - change_gid ? file->ids->gid : st->st_gid) != 0) { + change_uid ? file->uid : st->st_uid, + change_gid ? file->gid : st->st_gid) != 0) { /* shouldn't have attempted to change uid or gid * unless have the privilege */ rsyserr(FERROR, errno, "%s %s failed", @@ -139,7 +138,7 @@ int set_perms(char *fname,struct file_struct *file,STRUCT_STAT *st, } #endif - if (verbose > 1 && flags & PERMS_REPORT) { + if (verbose > 1 && flags & ATTRS_REPORT) { enum logcode code = daemon_log_format_has_i || dry_run ? FCLIENT : FINFO; if (updated) @@ -176,14 +175,15 @@ void finish_transfer(char *fname, char *fnametmp, struct file_struct *file, if (inplace) { if (verbose > 2) rprintf(FINFO, "finishing %s\n", fname); - goto do_set_perms; + goto do_set_file_attrs; } if (make_backups && overwriting_basis && !make_backup(fname)) return; /* Change permissions before putting the file into place. */ - set_perms(fnametmp, file, NULL, ok_to_set_time ? 0 : PERMS_SKIP_MTIME); + set_file_attrs(fnametmp, file, NULL, + ok_to_set_time ? 0 : ATTRS_SKIP_MTIME); /* move tmp file over real file */ if (verbose > 2) @@ -200,8 +200,9 @@ void finish_transfer(char *fname, char *fnametmp, struct file_struct *file, /* The file was moved into place (not copied), so it's done. */ return; } - do_set_perms: - set_perms(fname, file, NULL, ok_to_set_time ? 0 : PERMS_SKIP_MTIME); + do_set_file_attrs: + set_file_attrs(fname, file, NULL, + ok_to_set_time ? 0 : ATTRS_SKIP_MTIME); } const char *who_am_i(void)