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
- Added an extra phase to the end of the transfer to better handle
[rsync/rsync.git]
/
generator.c
diff --git
a/generator.c
b/generator.c
index
d33d5d0
..
9a27c13
100644
(file)
--- a/
generator.c
+++ b/
generator.c
@@
-337,6
+337,8
@@
void itemize(struct file_struct *file, int ndx, int statret, STRUCT_STAT *st,
if ((iflags & SIGNIFICANT_ITEM_FLAGS || verbose > 1
|| (xname && *xname)) && !read_batch) {
if (protocol_version >= 29) {
if ((iflags & SIGNIFICANT_ITEM_FLAGS || verbose > 1
|| (xname && *xname)) && !read_batch) {
if (protocol_version >= 29) {
+ if (iflags & (ITEM_LOCAL_CHANGE|ITEM_TRANSFER))/* XXX */
+ iflags |= ITEM_DUMMY_BIT; /* XXX Remove soon */
if (ndx >= 0)
write_int(sock_f_out, ndx);
write_shortint(sock_f_out, iflags);
if (ndx >= 0)
write_int(sock_f_out, ndx);
write_shortint(sock_f_out, iflags);
@@
-585,7
+587,7
@@
static void recv_generator(char *fname, struct file_struct *file, int ndx,
enum logcode code, int f_out)
{
static int missing_below = -1, excluded_below = -1;
enum logcode code, int f_out)
{
static int missing_below = -1, excluded_below = -1;
- static char *fuzzy_dirname =
NULL
;
+ static char *fuzzy_dirname =
""
;
static struct file_list *fuzzy_dirlist = NULL;
struct file_struct *fuzzy_file = NULL;
int fd = -1, f_copy = -1;
static struct file_list *fuzzy_dirlist = NULL;
struct file_struct *fuzzy_file = NULL;
int fd = -1, f_copy = -1;
@@
-603,7
+605,7
@@
static void recv_generator(char *fname, struct file_struct *file, int ndx,
if (fuzzy_dirlist) {
flist_free(fuzzy_dirlist);
fuzzy_dirlist = NULL;
if (fuzzy_dirlist) {
flist_free(fuzzy_dirlist);
fuzzy_dirlist = NULL;
- fuzzy_dirname =
NULL
;
+ fuzzy_dirname =
""
;
}
if (missing_below >= 0) {
dry_run--;
}
if (missing_below >= 0) {
dry_run--;
@@
-1239,9
+1241,8
@@
void generate_files(int f_out, struct file_list *flist, char *local_name)
continue;
if (!need_retouch_dir_times && file->mode & S_IWUSR)
continue;
continue;
if (!need_retouch_dir_times && file->mode & S_IWUSR)
continue;
- recv_generator(local_name ? local_name : f_name(file),
- file, i, itemizing, maybe_PERMS_REPORT,
- code, -1);
+ recv_generator(f_name(file), file, i, itemizing,
+ maybe_PERMS_REPORT, code, -1);
if (allowed_lull && !(j++ % lull_mod))
maybe_send_keepalive();
}
if (allowed_lull && !(j++ % lull_mod))
maybe_send_keepalive();
}
@@
-1255,6
+1256,12
@@
void generate_files(int f_out, struct file_list *flist, char *local_name)
io_error |= IOERR_DEL_LIMIT;
}
io_error |= IOERR_DEL_LIMIT;
}
+ if (protocol_version >= 29) {
+ write_int(f_out, -1);
+ /* Read post-delay-phase MSG_DONE and any prior messages. */
+ get_redo_num(itemizing, code);
+ }
+
if (verbose > 2)
rprintf(FINFO,"generate_files finished\n");
}
if (verbose > 2)
rprintf(FINFO,"generate_files finished\n");
}