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
- Changed FILE_EXTENT to NORMAL_EXTENT and HLINK_EXTENT to SMALL_EXTENT.
[rsync/rsync.git]
/
rsync.c
diff --git
a/rsync.c
b/rsync.c
index
e7dd4be
..
292e518
100644
(file)
--- a/
rsync.c
+++ b/
rsync.c
@@
-166,15
+166,19
@@
int read_ndx_and_attrs(int f_in, int *iflag_ptr, uchar *type_ptr,
if (ndx < 0 || ndx >= dir_flist->count) {
ndx = NDX_FLIST_OFFSET - ndx;
rprintf(FERROR,
if (ndx < 0 || ndx >= dir_flist->count) {
ndx = NDX_FLIST_OFFSET - ndx;
rprintf(FERROR,
- "Invalid dir index: %d (%d - %d)\n",
- ndx, NDX_FLIST_OFFSET,
- NDX_FLIST_OFFSET - dir_flist->count);
+ "
[%s]
Invalid dir index: %d (%d - %d)\n",
+
who_am_i(),
ndx, NDX_FLIST_OFFSET,
+ NDX_FLIST_OFFSET - dir_flist->count
+ 1
);
exit_cleanup(RERR_PROTOCOL);
}
/* Send everything read from f_in to msg_fd_out. */
send_msg_int(MSG_FLIST, ndx);
start_flist_forward(f_in);
exit_cleanup(RERR_PROTOCOL);
}
/* Send everything read from f_in to msg_fd_out. */
send_msg_int(MSG_FLIST, ndx);
start_flist_forward(f_in);
+ if (verbose > 3) {
+ rprintf(FINFO, "[%s] receiving flist for dir %d\n",
+ who_am_i(), ndx);
+ }
flist = recv_file_list(f_in);
flist->parent_ndx = ndx;
stop_flist_forward();
flist = recv_file_list(f_in);
flist->parent_ndx = ndx;
stop_flist_forward();
@@
-322,9
+326,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 !=
(uid_t)F_OWNER
(file);
+ change_gid = preserve_gid &&
!(file->flags & FLAG_SKIP_GROUP)
+
&& sxp->st.st_gid != (gid_t)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
+338,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_GID
(file) : sxp->st.st_gid) != 0) {
+ change_uid ?
(uid_t)F_OWNER
(file) : sxp->st.st_uid,
+ change_gid ?
(gid_t)F_GROUP
(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",