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
- Send a flag from the client to the server to indicate if the protocol
[rsync/rsync.git]
/
generator.c
diff --git
a/generator.c
b/generator.c
index
e6e5003
..
6a13154
100644
(file)
--- a/
generator.c
+++ b/
generator.c
@@
-496,7
+496,7
@@
static void do_delete_pass(void)
for (j = 0; j < cur_flist->used; j++) {
struct file_struct *file = cur_flist->sorted[j];
for (j = 0; j < cur_flist->used; j++) {
struct file_struct *file = cur_flist->sorted[j];
- if (!(file->flags & FLAG_
XFER
_DIR))
+ if (!(file->flags & FLAG_
CONTENT
_DIR))
continue;
f_name(file, fbuf);
continue;
f_name(file, fbuf);
@@
-562,6
+562,11
@@
void itemize(const char *fnamecmp, struct file_struct *file, int ndx, int statre
&& (!(iflags & ITEM_XNAME_FOLLOWS) || *xname))
|| (keep_time && cmp_time(file->modtime, sxp->st.st_mtime) != 0))
iflags |= ITEM_REPORT_TIME;
&& (!(iflags & ITEM_XNAME_FOLLOWS) || *xname))
|| (keep_time && cmp_time(file->modtime, sxp->st.st_mtime) != 0))
iflags |= ITEM_REPORT_TIME;
+#ifndef HAVE_LCHMOD
+ if (S_ISLNK(file->mode)) {
+ ;
+ } else
+#endif
if (!BITS_EQUAL(sxp->st.st_mode, file->mode, CHMOD_BITS))
iflags |= ITEM_REPORT_PERMS;
if (uid_ndx && am_root && (uid_t)F_OWNER(file) != sxp->st.st_uid)
if (!BITS_EQUAL(sxp->st.st_mode, file->mode, CHMOD_BITS))
iflags |= ITEM_REPORT_PERMS;
if (uid_ndx && am_root && (uid_t)F_OWNER(file) != sxp->st.st_uid)
@@
-1131,7
+1136,7
@@
static void recv_generator(char *fname, struct file_struct *file, int ndx,
char *fnamecmp, *partialptr, *backupptr = NULL;
char fnamecmpbuf[MAXPATHLEN];
uchar fnamecmp_type;
char *fnamecmp, *partialptr, *backupptr = NULL;
char fnamecmpbuf[MAXPATHLEN];
uchar fnamecmp_type;
- int implied_dirs_are_missing = relative_paths && !implied_dirs &&
!inc_recurse
;
+ int implied_dirs_are_missing = relative_paths && !implied_dirs &&
protocol_version < 30
;
int del_opts = delete_mode || force_delete ? DEL_RECURSE : 0;
if (verbose > 2)
int del_opts = delete_mode || force_delete ? DEL_RECURSE : 0;
if (verbose > 2)
@@
-1139,7
+1144,7
@@
static void recv_generator(char *fname, struct file_struct *file, int ndx,
if (list_only) {
if (S_ISDIR(file->mode)
if (list_only) {
if (S_ISDIR(file->mode)
- && ((!implied_dirs &&
!(file->flags & FLAG_XFER_DIR)
)
+ && ((!implied_dirs &&
file->flags & FLAG_IMPLIED_DIR
)
|| (inc_recurse && ndx != cur_flist->ndx_start - 1)))
return;
list_file_entry(file);
|| (inc_recurse && ndx != cur_flist->ndx_start - 1)))
return;
list_file_entry(file);
@@
-1248,10
+1253,10
@@
static void recv_generator(char *fname, struct file_struct *file, int ndx,
}
if (S_ISDIR(file->mode)) {
}
if (S_ISDIR(file->mode)) {
- if (!implied_dirs &&
!(file->flags & FLAG_XFER_DIR)
)
+ if (!implied_dirs &&
file->flags & FLAG_IMPLIED_DIR
)
goto cleanup;
if (inc_recurse && ndx != cur_flist->ndx_start - 1) {
goto cleanup;
if (inc_recurse && ndx != cur_flist->ndx_start - 1) {
- /* In inc_recurse mode we want
ot
make sure any missing
+ /* In inc_recurse mode we want
to
make sure any missing
* directories get created while we're still processing
* the parent dir (which allows us to touch the parent
* dir's mtime right away). We will handle the dir in
* directories get created while we're still processing
* the parent dir (which allows us to touch the parent
* dir's mtime right away). We will handle the dir in
@@
-1345,7
+1350,7
@@
static void recv_generator(char *fname, struct file_struct *file, int ndx,
}
}
else if (delete_during && f_out != -1 && !phase && dry_run < 2
}
}
else if (delete_during && f_out != -1 && !phase && dry_run < 2
- && (file->flags & FLAG_
XFER
_DIR))
+ && (file->flags & FLAG_
CONTENT
_DIR))
delete_in_dir(fname, file, &real_sx.st.st_dev);
goto cleanup;
}
delete_in_dir(fname, file, &real_sx.st.st_dev);
goto cleanup;
}
@@
-1832,7
+1837,7
@@
static void touch_up_dirs(struct file_list *flist, int ndx)
for (i = start; i <= end; i++, counter++) {
file = flist->files[i];
if (!S_ISDIR(file->mode)
for (i = start; i <= end; i++, counter++) {
file = flist->files[i];
if (!S_ISDIR(file->mode)
- || (
relative_paths && !implied_dirs && !(file->flags & FLAG_XFER_DIR)
))
+ || (
!implied_dirs && file->flags & FLAG_IMPLIED_DIR
))
continue;
if (verbose > 3) {
fname = f_name(file, NULL);
continue;
if (verbose > 3) {
fname = f_name(file, NULL);
@@
-2002,7
+2007,7
@@
void generate_files(int f_out, const char *local_name)
ndx = cur_flist->ndx_start - 1;
recv_generator(fbuf, fp, ndx, itemizing, code, f_out);
if (delete_during && dry_run < 2) {
ndx = cur_flist->ndx_start - 1;
recv_generator(fbuf, fp, ndx, itemizing, code, f_out);
if (delete_during && dry_run < 2) {
- if (BITS_SETnUNSET(fp->flags, FLAG_
XFER
_DIR, FLAG_MISSING_DIR)) {
+ if (BITS_SETnUNSET(fp->flags, FLAG_
CONTENT
_DIR, FLAG_MISSING_DIR)) {
dev_t dirdev;
if (one_file_system) {
uint32 *devp = F_DIR_DEV_P(fp);
dev_t dirdev;
if (one_file_system) {
uint32 *devp = F_DIR_DEV_P(fp);