aboutsummaryrefslogtreecommitdiffstats
path: root/generator.c
diff options
context:
space:
mode:
authorWayne Davison <wayned@samba.org>2011-01-01 12:54:07 -0800
committerWayne Davison <wayned@samba.org>2011-01-01 13:10:28 -0800
commit575933e9d0c02626cea924187034b001bd5210f0 (patch)
treede0ac2aca3ae0c49b3b4ea7e719c92c606c0b9ac /generator.c
parent14013906ca0ee2d226f0baba74811f60224c35e2 (diff)
downloadandroid_external_rsync-575933e9d0c02626cea924187034b001bd5210f0.tar.gz
android_external_rsync-575933e9d0c02626cea924187034b001bd5210f0.tar.bz2
android_external_rsync-575933e9d0c02626cea924187034b001bd5210f0.zip
Itemize xattrs of a missing dir from an alt-dest dir.
Fixes bug 6576.
Diffstat (limited to 'generator.c')
-rw-r--r--generator.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/generator.c b/generator.c
index 61a23059..32d56eac 100644
--- a/generator.c
+++ b/generator.c
@@ -1282,6 +1282,8 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
goto cleanup;
}
+ fnamecmp = fname;
+
if (is_dir) {
if (!implied_dirs && file->flags & FLAG_IMPLIED_DIR)
goto cleanup;
@@ -1329,11 +1331,13 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
itemizing = 0;
code = FNONE;
statret = 1;
- } else if (j >= 0)
+ } else if (j >= 0) {
statret = 1;
+ fnamecmp = fnamecmpbuf;
+ }
}
if (itemizing && f_out != -1) {
- itemize(fname, file, ndx, statret, &sx,
+ itemize(fnamecmp, file, ndx, statret, &sx,
statret ? ITEM_LOCAL_CHANGE : 0, 0, NULL);
}
if (real_ret != 0 && do_mkdir(fname,file->mode) < 0 && errno != EEXIST) {
@@ -1590,7 +1594,6 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
goto cleanup;
}
- fnamecmp = fname;
fnamecmp_type = FNAMECMP_FNAME;
if (statret == 0 && !S_ISREG(sx.st.st_mode)) {