Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
- Use F_OWNER() and F_GROUP() instead of F_UID() and F_GID().
[rsync/rsync.git]
/
rsync.c
diff --git
a/rsync.c
b/rsync.c
index
06fd30b
..
935c5dd
100644
(file)
--- a/
rsync.c
+++ b/
rsync.c
@@
-127,7
+127,7
@@
void setup_iconv()
exit_cleanup(RERR_UNSUPPORTED);
}
exit_cleanup(RERR_UNSUPPORTED);
}
- if (!am_sender)
+ if (!am_sender
|| inc_recurse
)
ic_ndx = ++file_extra_cnt;
if (verbose > 1) {
ic_ndx = ++file_extra_cnt;
if (verbose > 1) {
@@
-322,9
+322,9
@@
int set_file_attrs(const char *fname, struct file_struct *file, statx *sxp,
updated = 1;
}
updated = 1;
}
- change_uid = am_root && preserve_uid && sxp->st.st_uid != F_
UID
(file);
- change_gid = preserve_gid &&
F_GID(file) != GID_NONE
-
&& sxp->st.st_gid != F_GID
(file);
+ change_uid = am_root && preserve_uid && sxp->st.st_uid != F_
OWNER
(file);
+ change_gid = preserve_gid &&
!(file->flags & FLAG_SKIP_GROUP)
+
&& sxp->st.st_gid != F_GROUP
(file);
#if !defined HAVE_LCHOWN && !defined CHOWN_MODIFIES_SYMLINK
if (S_ISLNK(sxp->st.st_mode))
;
#if !defined HAVE_LCHOWN && !defined CHOWN_MODIFIES_SYMLINK
if (S_ISLNK(sxp->st.st_mode))
;
@@
-334,22
+334,20
@@
int set_file_attrs(const char *fname, struct file_struct *file, statx *sxp,
if (verbose > 2) {
if (change_uid) {
rprintf(FINFO,
if (verbose > 2) {
if (change_uid) {
rprintf(FINFO,
- "set uid of %s from %ld to %ld\n",
- fname,
- (long)sxp->st.st_uid, (long)F_UID(file));
+ "set uid of %s from %u to %u\n",
+ fname, (unsigned)sxp->st.st_uid, F_OWNER(file));
}
if (change_gid) {
rprintf(FINFO,
}
if (change_gid) {
rprintf(FINFO,
- "set gid of %s from %ld to %ld\n",
- fname,
- (long)sxp->st.st_gid, (long)F_GID(file));
+ "set gid of %s from %u to %u\n",
+ fname, (unsigned)sxp->st.st_gid, F_GROUP(file));
}
}
if (am_root < 0) {
;
} else if (do_lchown(fname,
}
}
if (am_root < 0) {
;
} else if (do_lchown(fname,
- change_uid ? F_
UID
(file) : sxp->st.st_uid,
- change_gid ? F_G
ID
(file) : sxp->st.st_gid) != 0) {
+ change_uid ? F_
OWNER
(file) : sxp->st.st_uid,
+ change_gid ? F_G
ROUP
(file) : sxp->st.st_gid) != 0) {
/* shouldn't have attempted to change uid or gid
* unless have the privilege */
rsyserr(FERROR, errno, "%s %s failed",
/* shouldn't have attempted to change uid or gid
* unless have the privilege */
rsyserr(FERROR, errno, "%s %s failed",