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
preparing for release of 2.0.12
[rsync/rsync.git]
/
rsync.c
diff --git
a/rsync.c
b/rsync.c
index
82efef5
..
2f772ac
100644
(file)
--- a/
rsync.c
+++ b/
rsync.c
@@
-267,6
+267,7
@@
static int set_perms(char *fname,struct file_struct *file,STRUCT_STAT *st,
{
int updated = 0;
STRUCT_STAT st2;
{
int updated = 0;
STRUCT_STAT st2;
+ extern int am_daemon;
if (dry_run) return 0;
if (dry_run) return 0;
@@
-300,8
+301,9
@@
static int set_perms(char *fname,struct file_struct *file,STRUCT_STAT *st,
}
#endif
}
#endif
- if ((am_root && preserve_uid && st->st_uid != file->uid) ||
- (preserve_gid && st->st_gid != file->gid)) {
+ if ((am_root || !am_daemon) &&
+ ((am_root && preserve_uid && st->st_uid != file->uid) ||
+ (preserve_gid && st->st_gid != file->gid))) {
if (do_lchown(fname,
(am_root&&preserve_uid)?file->uid:-1,
preserve_gid?file->gid:-1) != 0) {
if (do_lchown(fname,
(am_root&&preserve_uid)?file->uid:-1,
preserve_gid?file->gid:-1) != 0) {
@@
-940,7
+942,7
@@
int recv_files(int f_in,struct file_list *flist,char *local_name,int f_gen)
/* now we need to fix any directory permissions that were
modified during the transfer */
for (i = 0; i < flist->count; i++) {
/* now we need to fix any directory permissions that were
modified during the transfer */
for (i = 0; i < flist->count; i++) {
-
struct file_struct *
file = flist->files[i];
+ file = flist->files[i];
if (!file->basename || !S_ISDIR(file->mode)) continue;
recv_generator(f_name(file),flist,i,-1);
}
if (!file->basename || !S_ISDIR(file->mode)) continue;
recv_generator(f_name(file),flist,i,-1);
}