Commit d0221f1d authored by Wayne Davison's avatar Wayne Davison

Fixed handling of "redo" items in protocol 30.

parent 3be97bf9
...@@ -57,7 +57,7 @@ extern struct file_list *cur_flist, *first_flist; ...@@ -57,7 +57,7 @@ extern struct file_list *cur_flist, *first_flist;
extern struct filter_list_struct server_filter_list; extern struct filter_list_struct server_filter_list;
static struct bitbag *delayed_bits = NULL; static struct bitbag *delayed_bits = NULL;
static int phase = 0; static int phase = 0, redoing = 0;
/* We're either updating the basis file or an identical copy: */ /* We're either updating the basis file or an identical copy: */
static int updating_basis; static int updating_basis;
...@@ -314,7 +314,7 @@ static int get_next_gen_ndx(int fd, int next_gen_ndx, int desired_ndx) ...@@ -314,7 +314,7 @@ static int get_next_gen_ndx(int fd, int next_gen_ndx, int desired_ndx)
if (next_gen_ndx >= 0) { if (next_gen_ndx >= 0) {
rprintf(FINFO, rprintf(FINFO,
"(No batched update for%s \"%s\")\n", "(No batched update for%s \"%s\")\n",
phase ? " resend of" : "", redoing ? " resend of" : "",
f_name(cur_flist->files[next_gen_ndx], NULL)); f_name(cur_flist->files[next_gen_ndx], NULL));
} }
next_gen_ndx = read_int(fd); next_gen_ndx = read_int(fd);
...@@ -412,6 +412,7 @@ int recv_files(int f_in, char *local_name) ...@@ -412,6 +412,7 @@ int recv_files(int f_in, char *local_name)
append_mode = -append_mode; append_mode = -append_mode;
sparse_files = -sparse_files; sparse_files = -sparse_files;
csum_length = SUM_LENGTH; csum_length = SUM_LENGTH;
redoing = 1;
} }
} else { } else {
if (csum_length != SHORT_SUM_LENGTH) { if (csum_length != SHORT_SUM_LENGTH) {
...@@ -420,6 +421,7 @@ int recv_files(int f_in, char *local_name) ...@@ -420,6 +421,7 @@ int recv_files(int f_in, char *local_name)
append_mode = -append_mode; append_mode = -append_mode;
sparse_files = -sparse_files; sparse_files = -sparse_files;
csum_length = SHORT_SUM_LENGTH; csum_length = SHORT_SUM_LENGTH;
redoing = 0;
} }
} }
...@@ -667,7 +669,7 @@ int recv_files(int f_in, char *local_name) ...@@ -667,7 +669,7 @@ int recv_files(int f_in, char *local_name)
|| (preserve_hard_links && F_IS_HLINKED(file))) || (preserve_hard_links && F_IS_HLINKED(file)))
send_msg_int(MSG_SUCCESS, ndx); send_msg_int(MSG_SUCCESS, ndx);
} else if (!recv_ok) { } else if (!recv_ok) {
enum logcode msgtype = phase || read_batch ? FERROR : FINFO; enum logcode msgtype = redoing || read_batch ? FERROR : FINFO;
if (msgtype == FERROR || verbose) { if (msgtype == FERROR || verbose) {
char *errstr, *redostr, *keptstr; char *errstr, *redostr, *keptstr;
if (!(keep_partial && partialptr) && !inplace) if (!(keep_partial && partialptr) && !inplace)
...@@ -687,10 +689,11 @@ int recv_files(int f_in, char *local_name) ...@@ -687,10 +689,11 @@ int recv_files(int f_in, char *local_name)
"%s: %s failed verification -- update %s%s.\n", "%s: %s failed verification -- update %s%s.\n",
errstr, fname, keptstr, redostr); errstr, fname, keptstr, redostr);
} }
if (!phase || incremental) { if (!redoing) {
send_msg_int(MSG_REDO, ndx); send_msg_int(MSG_REDO, ndx);
file->flags |= FLAG_FILE_SENT; file->flags |= FLAG_FILE_SENT;
} } else if (incremental)
send_msg_int(MSG_NO_SEND, ndx);
} }
} }
if (make_backups < 0) if (make_backups < 0)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment