summaryrefslogtreecommitdiff
path: root/flist.c
diff options
context:
space:
mode:
authorWayne Davison <wayned@samba.org>2005-11-07 04:28:32 +0000
committerWayne Davison <wayned@samba.org>2005-11-07 04:28:32 +0000
commit2b7e0f33a67ba8f9de069280b1bd5d1f9053d595 (patch)
treeb78179e263ff5dfcda5f63e1e74c776365a8921a /flist.c
parent0582cdae8dfedc0435dc24de4040509307b4287a (diff)
downloadrsync-2b7e0f33a67ba8f9de069280b1bd5d1f9053d595.tar.gz
Call tweak_mode() on regular files and dirs if --chmod was specified.
Diffstat (limited to 'flist.c')
-rw-r--r--flist.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/flist.c b/flist.c
index b6a57a4f..1bc25bc2 100644
--- a/flist.c
+++ b/flist.c
@@ -62,6 +62,8 @@ extern struct file_list *the_file_list;
extern char curr_dir[MAXPATHLEN];
+extern struct chmod_mode_struct *chmod_modes;
+
extern struct filter_list_struct filter_list;
extern struct filter_list_struct server_filter_list;
@@ -865,7 +867,10 @@ skip_filters:
file->flags = flags;
file->modtime = st.st_mtime;
file->length = st.st_size;
- file->mode = st.st_mode;
+ if (chmod_modes && am_sender && (S_ISREG(st.st_mode) || S_ISDIR(st.st_mode)))
+ file->mode = tweak_mode(st.st_mode, chmod_modes);
+ else
+ file->mode = st.st_mode;
file->uid = st.st_uid;
file->gid = st.st_gid;